diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_basics.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_basics.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_basics.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: October, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_BASICS_H
-#define PATS_CCOMP_BASICS_H
-
-/* ****** ****** */
-//
-// HX: boolean values
-//
-#define atsbool_true 1
-#define atsbool_false 0
-//
-#define atsptr_null ((void*)0)
-#define the_atsptr_null ((void*)0)
-//
-/* ****** ****** */
-//
-#define ATSstruct struct
-//
-/* ****** ****** */
-/*
-#define ATStypedef typedef
-*/
-//
-/* ****** ****** */
-
-#ifndef \
-ATS_EXTERN_DEF__
-#define ATSextern() extern
-#else
-#define ATSextern() ATS_EXTERN_DEF__
-#endif // #ifndef
-
-/* ****** ****** */
-
-#ifndef \
-ATS_STATIC_DEF__
-#define ATSstatic() static
-#else
-#define ATSstatic() ATS_STATIC_DEF__
-#endif // #ifndef
-
-/* ****** ****** */
-
-#ifndef \
-ATS_INLINE_DEF__
-#define ATSinline() static inline
-#else
-#define ATSinline() ATS_INLINE_DEF__
-#endif // #ifndef
-
-/* ****** ****** */
-//
-#define ATSdynload()
-//
-#define ATSdynloadflag_sta(flag)
-#define ATSdynloadflag_ext(flag) ATSextern() int flag
-//
-#define ATSdynloadflag_init(flag) int flag = 0
-//
-#define ATSdynloadflag_minit(flag) int flag = 0
-//
-#define ATSdynloadset(flag) flag = 1
-#define ATSdynloadfcall(dynloadfun) dynloadfun()
-//
-/* ****** ****** */
-
-#ifndef \
-_ATS_CCOMP_EXCEPTION_NONE_
-//
-#define \
-ATSdynexn_dec(d2c) \
-atstype_exncon d2c = { 0, "__ATSEXNMSG__" }
-//
-#define \
-ATSdynexn_extdec(d2c) ATSextern() atstype_exncon d2c
-//
-#define \
-ATSdynexn_initize(d2c, exnmsg) the_atsexncon_initize(&(d2c), exnmsg)
-//
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-
-/* ****** ****** */
-
-#define ATSassume(flag) void *flag = (void*)0
-
-/* ****** ****** */
-//
-#define ATSclosurerize_end(flab)
-#define ATSclosurerize_beg(flab, tenvs, targs, tres)
-//
-/* ****** ****** */
-
-#define ATSdyncst_mac(d2c)
-#define ATSdyncst_castfn(d2c)
-#define ATSdyncst_extfun(d2c, targs, tres) ATSextern() tres d2c targs
-#define ATSdyncst_stafun(d2c, targs, tres) ATSstatic() tres d2c targs
-
-/* ****** ****** */
-
-#define ATSdyncst_valimp(d2c, type) type d2c
-#define ATSdyncst_valdec(d2c, type) ATSextern() type d2c
-
-/* ****** ****** */
-//
-#define \
-ATSmainats_void_0(err) mainats_void_0()
-#define \
-ATSmainats_argc_argv_0(argc, argv, err) mainats_argc_argv_0(argc, argv)
-#define \
-ATSmainats_argc_argv_envp_0(argc, argv, envp, err) mainats_argc_argv_envp_0(argc, argv, envp)
-//
-#define \
-ATSmainats_void_int(err) err = mainats_void_int()
-#define \
-ATSmainats_argc_argv_int(argc, argv, err) err = mainats_argc_argv_int(argc, argv)
-#define \
-ATSmainats_argc_argv_envp_int(argc, argv, envp, err) err = mainats_argc_argv_envp_int(argc, argv, envp)
-//
-/* ****** ****** */
-//
-extern
-void atsruntime_raise (void *exn) ;
-extern
-void atsruntime_handle_uncaughtexn (void *exn0) ;
-extern
-void atsruntime_handle_unmatchedval (char *msg0) ;
-extern
-void atsruntime_handle_unmatchedarg (char *msg0) ;
-//
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_BASICS_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_basics.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_config.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_config.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_exception.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_exception.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_exception.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: June, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_EXCEPTION_H
-#define PATS_CCOMP_EXCEPTION_H
-
-/* ****** ****** */
-
-/*
-use -D_XOPEN_SOURCE
-*/
-#include <setjmp.h>
-
-/* ****** ****** */
-
-#define atstype_jmp_buf jmp_buf
-#define atspre_setjmp(env, mask) setjmp(env)
-#define atspre_longjmp(env, ret) longjmp(env, ret)
-
-/* ****** ****** */
-
-/*
-#include <alloca.h>
-*/
-extern void *alloca (size_t bsz) ;
-
-/* ****** ****** */
-
-/*
-extern
-atstype_exncon *atspre_AssertExn_make() ;
-extern
-atstype_exncon *atspre_NotFoundExn_make() ;
-extern
-atstype_exncon *atspre_IllegalArgExn_make(const char*) ;
-extern
-atstype_exncon *atspre_ListSubscriptExn_make() ;
-extern
-atstype_exncon *atspre_StreamSubscriptExn_make() ;
-extern
-atstype_exncon *atspre_ArraySubscriptExn_make() ;
-extern
-atstype_exncon *atspre_MatrixSubscriptExn_make() ;
-//
-extern atstype_exncon *atspre_NotSomeExn_make() ;
-//
-extern
-atstype_bool atspre_isListSubscriptExn (const atstype_exncon*) ;
-extern
-atstype_bool atspre_isStreamSubscriptExn (const atstype_exncon*) ;
-extern
-atstype_bool atspre_isArraySubscriptExn (const atstype_exncon*) ;
-extern
-atstype_bool atspre_isMatrixSubscriptExn (const atstype_exncon*) ;
-//
-extern atstype_bool atspre_isNotSomeExn (const atstype_exncon*) ; 
-*/
-
-/* ****** ****** */
-
-typedef
-struct atsexnframe
-{
-  atstype_jmp_buf env ;
-  atstype_exnconptr exn ;
-  struct atsexnframe *prev ;
-} atsexnframe_t ;
-
-typedef
-atsexnframe_t *atsexnframe_ptr ;
-
-/* ****** ****** */
-
-#define \
-atsexnframe_alloc() alloca(sizeof(atsexnframe_t))
-#define \
-atsexnframe_mfree(frame) /* there-is-nothing-to-do */
-
-/* ****** ****** */
-
-extern
-atsexnframe_ptr *my_atsexnframe_getref () ;
-
-/* ****** ****** */
-
-static
-inline
-void my_atsexnframe_enter
-(
-  atsexnframe_ptr frame
-, atsexnframe_ptr *framep
-) {
-  frame->prev = *framep ; *framep = frame ; return ;
-} // end of [my_atsexnframe_enter]
-
-static
-inline
-void my_atsexnframe_leave
-(
-  atsexnframe_ptr *framep
-) {
-  atsexnframe_mfree(*framep) ; *framep = (*framep)->prev ; return ;
-} // end of [my_atsexnframe_leave]
-
-/* ****** ****** */
-
-/*
-** HX:
-** beg-of-WARNING:
-** DO NOT USE THE FOLLOWING MACROS:
-*/
-
-#define \
-ATStrywith_try(tmpexn) \
-do { \
-  int flag ; \
-  atsexnframe_ptr frame ; \
-  atsexnframe_ptr *framep ; \
-  frame = atsexnframe_alloc() ; \
-  framep = my_atsexnframe_getref() ; \
-  my_atsexnframe_enter(frame, framep) ; \
-  flag = atspre_setjmp(frame->env, 1) ; \
-  if (flag==0) { /* normal */
-
-#define \
-ATStrywith_with(tmpexn) \
-    my_atsexnframe_leave(framep) ; \
-  } else { /* flag<>0 : exceptional */ \
-    tmpexn = (*framep)->exn ; \
-    my_atsexnframe_leave(framep) ;
-
-#define \
-ATStrywith_end(tmpexn) \
-  } \
-} while(0) ; /* end of [do] */
-
-/* end-of-WARNING */
-
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_EXCEPTION_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_exception.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_instrset.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_instrset.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_instrset.h
+++ /dev/null
@@ -1,441 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: October, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_INSTRSET_H
-#define PATS_CCOMP_INSTRSET_H
-
-/* ****** ****** */
-//
-// HX: boolean values
-//
-#define atsbool_true 1
-#define atsbool_false 0
-//
-/* ****** ****** */
-
-#define ATStysum() struct{ int contag; }
-#define ATStyexn() struct{ int exntag; char *exnmsg; }
-#define ATStylist(tyelt) struct{ tyelt head; void *tail; }
-#define ATStyclo() struct{ void *cfun; }
-
-/* ****** ****** */
-//
-// HX: for supporting lazy-evaluation
-//
-#define \
-ATStylazy(tyval) \
-  struct{ int flag; union{ void* thunk; tyval saved; } lazy; }
-//
-/* ****** ****** */
-
-#define ATSif(x) if(x)
-#define ATSthen()
-#define ATSelse() else
-
-/* ****** ****** */
-
-#define ATSifthen(x) if(x)
-#define ATSifnthen(x) if(!(x))
-
-/* ****** ****** */
-
-#define ATSdo() do
-#define ATSwhile(x) while(x)
-#define ATSbreak() break
-#define ATScontinue() continue
-
-/* ****** ****** */
-//
-// HX: handling for/while loops
-//
-#define \
-ATSloop_open(init, fini, cont) \
-  do { init:
-#define \
-ATSloop_close(init, fini, cont) \
-  goto init ; fini: break ; } while(0)
-//
-#define ATSbreak2(fini) goto fini
-#define ATScontinue2(cont) goto cont
-//
-/* ****** ****** */
-
-#define ATSreturn(x) return(x)
-#define ATSreturn_void(x) return
-
-/* ****** ****** */
-
-#define ATSFCreturn(x) return(x)
-#define ATSFCreturn_void(x) (x); return
-
-/* ****** ****** */
-//
-#define ATSbranch_beg()
-#define ATSbranch_end() break ;
-//
-#define ATScaseof_beg() do {
-#define ATScaseof_end() } while(0) ;
-//
-/* ****** ****** */
-
-#define ATSextcode_beg()
-#define ATSextcode_end()
-
-/* ****** ****** */
-
-#define ATSfunbody_beg()
-#define ATSfunbody_end()
-
-/* ****** ****** */
-
-#define ATSPMVint(i) i
-#define ATSPMVintrep(rep) (rep)
-
-#define ATSPMVbool_true() atsbool_true
-#define ATSPMVbool_false() atsbool_false
-#define ATSPMVchar(c) (c)
-#define ATSPMVfloat(rep) (rep)
-#define ATSPMVstring(str) (str)
-
-#define ATSPMVi0nt(tok) (tok)
-#define ATSPMVf0loat(tok) (tok)
-
-/* ****** ****** */
-
-#define ATSCSTSPmyfil(info) info
-#define ATSCSTSPmyloc(info) info
-
-/* ****** ****** */
-//
-#define ATSPMVtop() atserror_top
-//
-#define ATSPMVempty() /*empty*/
-#define ATSPMVextval(name) (name)
-//
-/* ****** ****** */
-
-#define ATSPMVptrof(lval) (&(lval))
-#define ATSPMVptrof_void(lval) ((void*)0)
-
-/* ****** ****** */
-
-#define ATSPMVrefarg0(val) (val)
-#define ATSPMVrefarg1(ref) (ref)
-
-/* ****** ****** */
-
-#define ATSPMVvararg0() 0
-#define ATSPMVvararg1(...) __VA_ARGS__
-  
-/* ****** ****** */
-
-#define ATSPMVtyrep(rep) (rep)
-
-/* ****** ****** */
-
-#define ATSPMVsizeof(hit) (sizeof(hit))
-
-/* ****** ****** */
-//
-#define ATSPMVfunlab(flab) (flab)
-//
-// HX-2015-07-06: not yet in use:
-//
-#define ATSPMVfunlab2(flab, arity) (flab)
-//
-/* ****** ****** */
-
-#define ATSPMVcfunlab(knd, flab, env) (flab##__closurerize)env
-
-/* ****** ****** */
-
-//
-// HX: castfn application
-//
-#define ATSPMVcastfn(d2c, hit, arg) ((hit)arg)
-//
-/* ****** ****** */
-
-#define ATSfuncall(fun, funarg) (fun)funarg
-
-/* ****** ****** */
-//
-#define ATSextfcall(fun, funarg) (fun)funarg
-#define ATSextmcall(obj, mtd, funarg) (obj->mtd)funarg
-//
-/* ****** ****** */
-//
-#define \
-ATSfunclo_fun(pmv, targs, tres) ((tres(*)targs)(pmv))
-#define \
-ATSfunclo_clo(pmv, targs, tres) ((tres(*)targs)(((ATStyclo()*)pmv)->cfun))
-//
-/* ****** ****** */
-//
-#define ATStmpdec(tmp, hit) hit tmp
-#define ATStmpdec_void(tmp)
-//
-#define ATSstatmpdec(tmp, hit) static hit tmp
-#define ATSstatmpdec_void(tmp)
-//
-/* ****** ****** */
-
-#define ATSderef(pmv, hit) (*(hit*)pmv)
-
-/* ****** ****** */
-//
-// HX: [ATSSELcon] is the same as [ATSSELboxrec]
-//
-#define ATSSELcon(pmv, tysum, lab) (((tysum*)pmv)->lab)
-//
-#define ATSSELrecsin(pmv, tyrec, lab) (pmv)
-#define ATSSELfltrec(pmv, tyrec, lab) ((pmv).lab)
-#define ATSSELboxrec(pmv, tyrec, lab) (((tyrec*)pmv)->lab)
-#define ATSSELarrind(pmv, tyarr, lab) (((tyarr)pmv).lab)
-#define ATSSELarrptrind(pmv, tyelt, lab) (((tyelt*)pmv)lab)
-//
-/* ****** ****** */
-//
-#define ATSCKnot(x) ((x)==0)
-//
-#define ATSCKiseqz(x) ((x)==0)
-#define ATSCKisneqz(x) ((x)!=0)
-//
-#define ATSCKptriscons(x) (0 != (void*)(x))
-#define ATSCKptrisnull(x) (0 == (void*)(x))
-//
-/* ****** ****** */
-//
-#define ATSCKpat_int(pmv, pat) ((pmv)==pat)
-#define ATSCKpat_bool(pmv, pat) ((pmv)==pat)
-#define ATSCKpat_char(pmv, pat) ((pmv)==pat)
-#define ATSCKpat_float(pmv, pat) ((pmv)==pat)
-#define ATSCKpat_string(pmv, pat) (atspre_string_equal(pmv, pat))
-//
-/*
-** a datatype should not contain more than 1024 constructors!
-*/
-#define ATS_DATACONMAX 1024
-//
-#define ATSCKpat_con0(pmv, tag) ((pmv)==(void*)tag)
-#define ATSCKpat_con1(pmv, tag) \
-  ((pmv)>=(void*)ATS_DATACONMAX && ((ATStysum()*)(pmv))->contag==tag)
-//
-#define ATSCKpat_exn0(pmv, d2con) ((pmv)==(void*)(&(d2con)))
-#define ATSCKpat_exn1(pmv, d2con) (((ATStyexn()*)(pmv))->exntag==(&(d2con))->exntag)
-//
-/* ****** ****** */
-//
-#define ATSINSlab(lab) lab
-#define ATSINSgoto(lab) goto lab
-//
-#define ATSINSflab(flab) flab
-#define ATSINSfgoto(flab) goto flab
-//
-/* ****** ****** */
-
-#define ATSINSfreeclo(cloptr) ATS_MFREE(cloptr)
-#define ATSINSfreecon(datconptr) ATS_MFREE(datconptr)
-
-/* ****** ****** */
-
-#define ATSINSmove(tmp, val) (tmp = val)
-#define ATSINSpmove(tmp, hit, val) (*(hit*)tmp = val)
-
-/* ****** ****** */
-/*
-** HX-2013-01-20:
-** Do not have parentheses around [command]
-*/
-#define ATSINSmove_void(tmp, command) command
-#define ATSINSpmove_void(tmp, hit, command) command
-
-/* ****** ****** */
-
-#define ATSINSmove_ptralloc(tmp, hit) (tmp = ATS_MALLOC(sizeof(hit)))
-
-/* ****** ****** */
-//
-#define \
-ATSINSmove_nil(tmp) (tmp = ((void*)0))
-//
-#define \
-ATSINSmove_con0(tmp, tag) (tmp = ((void*)tag))
-//
-#define ATSINSmove_con1_beg()
-#define ATSINSmove_con1_end()
-#define ATSINSmove_con1_new(tmp, tysum) (tmp = ATS_MALLOC(sizeof(tysum)))
-#define ATSINSstore_con1_tag(tmp, val) (((ATStysum()*)(tmp))->contag = val)
-#define ATSINSstore_con1_ofs(tmp, tysum, lab, val) (((tysum*)(tmp))->lab = val)
-//
-/* ****** ****** */
-//
-#define ATSINSmove_exn0(tmp, d2con) (tmp = &(d2con))
-//
-#define ATSINSmove_exn1_beg()
-#define ATSINSmove_exn1_end()
-#define ATSINSmove_exn1_new(tmp, tyexn) (tmp = ATS_MALLOC(sizeof(tyexn)))
-#define ATSINSstore_exn1_tag(tmp, d2con) (((ATStyexn()*)tmp)->exntag = (&(d2con))->exntag)
-#define ATSINSstore_exn1_msg(tmp, d2con) (((ATStyexn()*)tmp)->exnmsg = (&(d2con))->exnmsg)
-//
-/* ****** ****** */
-//
-#define ATStailcal_beg() do {
-#define ATStailcal_end() } while(0) ;
-//
-#define ATSINSmove_tlcal(apy, tmp) (apy = tmp)
-#define ATSINSargmove_tlcal(arg, apy) (arg = apy)
-//
-/* ****** ****** */
-
-#define ATSINSmove_fltrec_beg()
-#define ATSINSmove_fltrec_end()
-#define ATSINSstore_fltrec_ofs(tmp, tyrec, lab, val) ((tmp).lab = val)
-
-/* ****** ****** */
-
-#define ATSINSmove_boxrec_beg()
-#define ATSINSmove_boxrec_end()
-#define ATSINSmove_boxrec_new(tmp, tyrec) (tmp = ATS_MALLOC(sizeof(tyrec)))
-#define ATSINSstore_boxrec_ofs(tmp, tyrec, lab, val) (((tyrec*)(tmp))->lab = val)
-
-/* ****** ****** */
-
-#define ATSINSload(tmp, pmv) (tmp = pmv)
-#define ATSINSstore(pmv1, pmv2) (pmv1 = pmv2)
-#define ATSINSxstore(tmp, pmv1, pmv2) (tmp = pmv1, pmv1 = pmv2, pmv2 = tmp)
-
-/* ****** ****** */
-//
-#define ATSINSmove_list_nil(tmp) (tmp = (void*)0)
-#define ATSINSmove_list_phead(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->head))
-#define ATSINSmove_list_ptail(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->tail))
-#define ATSINSpmove_list_nil(tmp) (*(void**)tmp = (void*)0)
-#define ATSINSpmove_list_cons(tmp, tyelt) (*(void**)tmp = ATS_MALLOC(sizeof(ATStylist(tyelt))))
-//
-/* ****** ****** */
-//
-#define ATSINSstore_arrpsz_asz(tmp, asz) ((tmp).size = asz)
-#define ATSINSstore_arrpsz_ptr(tmp, tyelt, asz) ((tmp).ptr = ATS_MALLOC(asz*sizeof(tyelt)))
-//
-#define ATSINSmove_arrpsz_ptr(tmp, psz) (tmp = (psz).ptr)
-//
-#define ATSINSupdate_ptrinc(tmp, tyelt) (tmp = (tyelt*)(tmp) + 1)
-#define ATSINSupdate_ptrdec(tmp, tyelt) (tmp = (tyelt*)(tmp) - 1)
-//
-/* ****** ****** */
-
-#define ATSINSextvar_assign(var, pmv) var = (pmv)
-#define ATSINSdyncst_valbind(d2cst, pmv) d2cst = (pmv)
-
-/* ****** ****** */
-
-#define ATSINSclosure_initize(flab, tmpenv) (flab##__closureinit)tmpenv
-
-/* ****** ****** */
-//
-#define ATSINSraise_exn(tmp, pmv) atsruntime_raise(pmv)
-//
-/* ****** ****** */
-//
-#define ATSINScaseof_fail(msg) atsruntime_handle_unmatchedval(msg)
-#define ATSINSfunarg_fail(msg) atsruntime_handle_unmatchedarg(msg)
-//
-/* ****** ****** */
-
-#define \
-ATSINSmove_delay(tmpret, tyval, pmv_thk) \
-do { \
-  tmpret = \
-    ATS_MALLOC(sizeof(ATStylazy(tyval))) ; \
-  (*(ATStylazy(tyval)*)tmpret).flag = 0 ; \
-  (*(ATStylazy(tyval)*)tmpret).lazy.thunk = pmv_thk ; \
-} while(0) ; /* end of [do ... while ...] */
-
-#define \
-ATSINSmove_lazyeval(tmpret, tyval, pmv_lazy) \
-do { \
-  if ( \
-    (*(ATStylazy(tyval)*)pmv_lazy).flag==0 \
-  ) { \
-    (*(ATStylazy(tyval)*)pmv_lazy).flag += 1 ; \
-    atstype_cloptr __thunk = (*(ATStylazy(tyval)*)pmv_lazy).lazy.thunk ; \
-    tmpret = ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr), tyval), (__thunk)) ; \
-    (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved = tmpret ; \
-  } else { \
-    tmpret = (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved ; \
-  } /* end of [if] */ \
-} while(0) /* end of [do ... while ...] */
-
-/* ****** ****** */
-
-#define \
-ATSINSmove_ldelay(tmpret, tyval, __thunk) \
-do { \
-  ATSINSmove(tmpret, __thunk) ; \
-} while(0) /* end of [do ... while ...] */
-
-#define \
-ATSINSmove_llazyeval(tmpret, tyval, __thunk) \
-do { \
-  tmpret = \
-  ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), tyval), (__thunk, atsbool_true)) ; \
-  ATS_MFREE(__thunk) ; \
-} while(0) /* end of [do ... while ...] */
-
-/* ****** ****** */
-
-#define \
-atspre_lazy_vt_free(__thunk) \
-do { \
-  ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), void), (__thunk, atsbool_false)) ; \
-  ATS_MFREE(__thunk) ; \
-} while(0) /* atspre_lazy_vt_free */
-
-/* ****** ****** */
-//
-// HX-2014-10:
-//
-#define atspre_lazy2cloref(pmv_lazy) ((*(ATStylazy(atstype_ptr)*)pmv_lazy).lazy.thunk)
-//
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_INSTRSET_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_instrset.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: October, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_MEMALLOC_H
-#define PATS_CCOMP_MEMALLOC_H
-
-/* ****** ****** */
-//
-// HX: for size_t
-//
-#include <stddef.h>
-//
-/* ****** ****** */
-//
-extern
-void atsruntime_mfree_undef (void *ptr) ;
-//
-extern
-void *atsruntime_malloc_undef (size_t bsz) ;
-extern
-void *atsruntime_calloc_undef (size_t asz, size_t tsz) ;
-extern
-void *atsruntime_realloc_undef (void *ptr, size_t bsz) ;
-//
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_FLAG
-#undef ATS_MEMALLOC_FLAG
-#endif // ifdef(ATS_MEMALLOC_FLAG)
-
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_LIBC
-//
-#define ATS_MEMALLOC_FLAG
-//
-#include "pats_ccomp_memalloc_libc.h"
-//
-#define ATS_MINIT atsruntime_minit_libc
-#define ATS_MFREE atsruntime_mfree_libc
-#define ATS_MALLOC atsruntime_malloc_libc_exn
-#define ATS_CALLOC atsruntime_calloc_libc_exn
-#define ATS_REALLOC atsruntime_realloc_libc_exn
-//
-#endif // end of [ATS_MEMALLOC_LIBC]
-
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_GCBDW
-//
-#define ATS_MEMALLOC_FLAG
-//
-#include "pats_ccomp_memalloc_gcbdw.h"
-//
-#define ATS_MINIT atsruntime_minit_gcbdw
-#define ATS_MFREE atsruntime_mfree_gcbdw
-#define ATS_MALLOC atsruntime_malloc_gcbdw_exn
-#define ATS_CALLOC atsruntime_calloc_gcbdw_exn
-#define ATS_REALLOC atsruntime_realloc_gcbdw_exn
-//
-#endif // end of [ATS_MEMALLOC_GCBDW]
-
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_USER
-//
-#define ATS_MEMALLOC_FLAG
-//
-#include "pats_ccomp_memalloc_user.h"
-//
-#define ATS_MINIT atsruntime_minit_user
-#define ATS_MFREE atsruntime_mfree_user
-#define ATS_MALLOC atsruntime_malloc_user
-#define ATS_CALLOC atsruntime_calloc_user
-#define ATS_REALLOC atsruntime_realloc_user
-//
-#endif // end of [ATS_MEMALLOC_USER]
-
-/* ****** ****** */
-
-#ifndef ATS_MEMALLOC_FLAG
-#define ATS_MEMALLOC_FLAG
-//
-#define ATS_MINIT atsruntime_minit_undef
-#define ATS_MFREE atsruntime_mfree_undef
-#define ATS_MALLOC atsruntime_malloc_undef
-#define ATS_CALLOC atsruntime_calloc_undef
-#define ATS_REALLOC atsruntime_realloc_undef
-//
-#endif // end of [ATS_MEMALLOC_FLAG]
-
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_MEMALLOC_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloc.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: March, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include <stdio.h>
-/*
-extern
-int fprintf (FILE *stream, const char *format, ...) ;
-*/
-/* ****** ****** */
-/*
-#include <stdlib.h>
-*/
-extern void exit (int code) ; 
-
-/* ****** ****** */
-/*
-#include <gc.h>
-*/
-extern void GC_init () ;
-extern void GC_free (void *ptr) ;
-extern void *GC_malloc(size_t bsz) ;
-extern void *GC_realloc(void *ptr, size_t bsz) ;
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atsruntime_minit_gcbdw
-  (/*void*/) { GC_init() ; return ; }
-// end of [atsruntime_minit_gcbdw]
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atsruntime_mfree_gcbdw
-  (void *ptr) { GC_free(ptr) ; return ; }
-// end of [atsruntime_mfree_gcbdw]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_malloc_gcbdw
-  (size_t bsz) { return GC_malloc(bsz) ; }
-// end of [atsruntime_malloc_gcbdw]
-
-ATSinline()
-atstype_ptr
-atsruntime_malloc_gcbdw_exn
-  (size_t bsz)
-{
-  void *ptr ;
-  ptr = atsruntime_malloc_gcbdw(bsz) ;
-  if (!ptr)
-  {
-    fprintf(
-      stderr, "exit(ATS): atsruntime_malloc_gcbdw_exn: [malloc] failed.\n"
-    ) ; exit(1) ;
-  } // end of [if]
-  return (ptr) ;
-} /* end of [atsruntime_malloc_gcbdw_exn] */
-
-/* ****** ****** */
-//
-// HX:
-// [GC_malloc] already
-// clears the allocated region!
-//
-ATSinline()
-atstype_ptr
-atsruntime_calloc_gcbdw
-  (size_t asz, size_t tsz)
-{
-  return atsruntime_malloc_gcbdw (asz*tsz) ;
-} // end of [atsruntime_calloc_gcbdw]
-
-ATSinline()
-atstype_ptr
-atsruntime_calloc_gcbdw_exn
-  (size_t asz, size_t tsz)
-{
-  return atsruntime_malloc_gcbdw_exn (asz*tsz) ;
-} // end of [atsruntime_calloc_gcbdw_exn]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_realloc_gcbdw
-  (void *ptr, size_t bsz) { return GC_realloc(ptr, bsz) ; }
-// end of [atsruntime_realloc_gcbdw]
-
-ATSinline()
-atstype_ptr
-atsruntime_realloc_gcbdw_exn
-  (void *ptr, size_t bsz)
-{
-  void *ptr2 ;
-  ptr2 = atsruntime_realloc_gcbdw(ptr, bsz) ;
-  if (!ptr2)
-  {
-    fprintf(
-    stderr, "exit(ATS): atsruntime_realloc_gcbdw_exn: [realloc] failed.\n"
-    ) ; exit(1) ;
-  } // end of [if]
-  return (ptr2) ;
-} /* end of [atsruntime_realloc_gcbdw_exn] */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloc_gcbdw.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_libc.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_libc.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_libc.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: March, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include <stdio.h>
-/*
-extern
-int fprintf (FILE *stream, const char *format, ...) ;
-*/
-/* ****** ****** */
-//
-// stdlib.h
-//
-extern void exit (int code) ;
-//
-extern void free (void *ptr) ;
-extern void *malloc (size_t bsz) ;
-extern void *calloc(size_t asz, size_t tsz) ;
-extern void *realloc(void *ptr, size_t bsz) ;
-//
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atsruntime_minit_libc() { return ; }
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atsruntime_mfree_libc
-  (atstype_ptr ptr) { free(ptr) ; return ; }
-// end of [atsruntime_mfree_libc]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_malloc_libc
-  (atstype_size bsz) { return malloc(bsz) ; }
-// end of [atsruntime_malloc_libc]
-
-ATSinline()
-atstype_ptr
-atsruntime_malloc_libc_exn
-  (atstype_size bsz)
-{
-  atstype_ptr p ;
-  p = atsruntime_malloc_libc(bsz) ;
-  if (!p) {
-    fprintf(stderr, "exit(ATS): atsruntime_malloc_libc_exn: [malloc] failed.\n") ;
-    exit(1) ;
-  } // end of [if]
-  return (p) ;
-} /* end of [atsruntime_malloc_libc_exn] */
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_calloc_libc
-  (atstype_size asz, atstype_size tsz) { return calloc(asz, tsz) ; }
-// end of [atsruntime_calloc_libc]
-
-ATSinline()
-atstype_ptr
-atsruntime_calloc_libc_exn
-(
-  atstype_size asz, atstype_size tsz
-)
-{
-  atstype_ptr p ;
-  p = atsruntime_calloc_libc(asz, tsz) ;
-  if (!p) {
-    fprintf(stderr, "exit(ATS): atsruntime_calloc_libc_exn: [calloc] failed.\n") ;
-    exit(1) ;
-  } // end of [if]
-  return (p) ;
-} /* end of [atsruntime_calloc_libc_exn] */
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_realloc_libc
-  (atstype_ptr ptr, atstype_size bsz) { return realloc(ptr, bsz) ; }
-// end of [atsruntime_realloc_libc]
-
-ATSinline()
-atstype_ptr
-atsruntime_realloc_libc_exn
-(
-  atstype_ptr ptr, atstype_size bsz
-)
-{
-  atstype_ptr p ;
-  p = atsruntime_realloc_libc(ptr, bsz) ;
-  if (!p) {
-    fprintf(stderr, "exit(ATS): atsruntime_realloc_libc_exn: [realloc] failed.\n") ;
-    exit(1) ;
-  } // end of [if]
-  return (p) ;
-} /* end of [atsruntime_realloc_libc_exn] */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloc_libc.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: March, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include <stdio.h>
-/*
-extern
-int fprintf (FILE *stream, const char *format, ...) ;
-*/
-/* ****** ****** */
-//
-// stdlib.h
-//
-extern void exit (int code) ;
-//
-/* ****** ****** */
-
-extern void atsruntime_mfree_user (void *ptr) ;
-extern void *atsruntime_malloc_user (size_t bsz) ;
-extern void *atsruntime_calloc_user (size_t asz, size_t tsz) ;
-extern void *atsruntime_realloc_user (void *ptr, size_t bsz) ;
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atsruntime_malloc_user_exn
-  (atstype_size bsz)
-{
-  atstype_ptr p ;
-  p = atsruntime_malloc_user(bsz) ;
-  if (!p) {
-    fprintf(stderr, "exit(ATS): atsruntime_malloc_user_exn: [malloc] failed.\n") ;
-    exit(1) ;
-  } // end of [if]
-  return (p) ;
-} /* end of [atsruntime_malloc_user_exn] */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloc_user.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user2.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user2.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloc_user2.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: March, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include <stdio.h>
-/*
-extern
-int fprintf (FILE *stream, const char *format, ...) ;
-*/
-/* ****** ****** */
-//
-// stdlib.h
-//
-extern void exit (int code) ;
-//
-/* ****** ****** */
-
-extern void atsruntime_mfree_user2 (void *ptr) ;
-extern void *atsruntime_malloc_user2 (size_t bsz) ;
-extern void *atsruntime_calloc_user2 (size_t asz, size_t tsz) ;
-extern void *atsruntime_realloc_user2 (void *ptr, size_t bsz) ;
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloc_user2.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloca.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloca.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_memalloca.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_MEMALLOCA_H
-#define PATS_CCOMP_MEMALLOCA_H
-
-/* ****** ****** */
-//
-// alloca.h
-//
-extern void *alloca (size_t bsz) ;
-//
-/* ****** ****** */
-//
-// HX: [afree] matches [alloca]
-//
-ATSinline()
-atsvoid_t0ype
-atsruntime_afree_libc
-  (atstype_ptr ptr) { return ; }
-// end of [atsruntime_afree_libc]
-
-ATSinline()
-atstype_ptr
-atsruntime_alloca_libc
-  (atstype_size bsz) { return alloca(bsz) ; }
-// end of [atsruntime_alloca_libc]
-
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_MEMALLOCA_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_memalloca.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime.c b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime.c
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: April, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include <stdio.h>
-//
-extern void exit (int) ; // in [stdlib.h]
-//
-/* ****** ****** */
-
-#include "pats_ccomp_basics.h"
-#include "pats_ccomp_typedefs.h"
-
-/* ****** ****** */
-//
-// HX-2013-04: some pre-initialized exceptions
-//
-/* ****** ****** */
-
-#ifndef \
-_ATS_CCOMP_EXCEPTION_NONE_
-//
-atstype_exncon
-ATSLIB_056_prelude__AssertExn = { 10, "AssertException" } ;
-atstype_exncon
-ATSLIB_056_prelude__GenerallyExn = { 20, "GenerallyException" } ;
-atstype_exncon
-ATSLIB_056_prelude__IllegalArgExn = { 30, "IllegalArgException" } ;
-//
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-
-/* ****** ****** */
-
-#ifndef \
-_ATS_CCOMP_EXCEPTION_NONE_
-//
-atstype_exncon
-ATSLIB_056_prelude__NotSomeExn = { 40, "NotSomeException" } ;
-atstype_exncon
-ATSLIB_056_prelude__NotFoundExn = { 41, "NotFoundException" } ;
-//
-atstype_exncon
-ATSLIB_056_prelude__ListSubscriptExn = { 50, "ListSubscriptException" } ;
-atstype_exncon
-ATSLIB_056_prelude__StreamSubscriptExn = { 51, "StreamSubscriptException" } ;
-//
-atstype_exncon
-ATSLIB_056_prelude__ArraySubscriptExn = { 60, "ArraySubscriptException" } ;
-atstype_exncon
-ATSLIB_056_prelude__MatrixSubscriptExn = { 61, "MatrixSubscriptException" } ;
-//
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-
-/* ****** ****** */
-
-#ifndef \
-_ATS_CCOMP_EXCEPTION_NONE_
-//
-extern
-void
-the_atsexncon_initize
-(
-  atstype_exncon *d2c, char* exnmsg
-)
-{
-//
-  static int the_atsexntag = 1024 ;
-//
-  if (!d2c->exntag)
-  {
-    d2c->exntag = the_atsexntag ;
-    the_atsexntag = the_atsexntag + 1 ;
-  }
-  d2c->exnmsg = exnmsg ;
-  return ;
-} // end of [the_atsexncon_initize]
-//
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-
-/* ****** ****** */
-//
-// HX-2013:
-// for reporting pattern matching failure
-//
-extern
-void
-atsruntime_handle_unmatchedval
-  (char *msg0)
-{
-  fprintf
-  ( stderr
-  , "exit(ATS): unmatched value at run-time:\n%s\n", msg0
-  ) ; exit(1) ;
-  return ; // deadcode
-} /* end of [atsruntime_handle_unmatchedval] */
-//
-/* ****** ****** */
-//
-// HX-2014-06:
-// for reporting funarg-pattern matching failure
-//
-extern
-void
-atsruntime_handle_unmatchedarg
-  (char *msg0)
-{
-  fprintf
-  ( stderr
-  , "exit(ATS): unmatched funarg at run-time:\n%s\n", msg0
-  ) ; exit(1) ;
-  return ; // deadcode
-} /* end of [atsruntime_handle_unmatchedarg] */
-//
-/* ****** ****** */
-//
-// HX-2014-06:
-// for reporting failure due to uncaught exception
-//
-extern
-void
-atsruntime_handle_uncaughtexn_rest
-  (atstype_exncon *exn0)
-{
-  fprintf
-  ( stderr
-  , "exit(ATS): uncaught exception at run-time:\n%s(%d)\n", exn0->exnmsg, exn0->exntag
-  ) ; exit(1) ;
-  return ; // deadcode
-} /* end of [atsruntime_handle_uncaughtexn_rest] */
-//
-/* ****** ****** */
-
-/* end of [pats_ccomp_runtime.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime2_dats.c b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime2_dats.c
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime2_dats.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
-**
-** The C code is generated by ATS/Postiats
-** The compilation time is: 2014-8-4: 12h:36m
-**
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-typedef
-ATSstruct {
-int exntag ;
-char *exnmsg ;
-atstkind_type(atstype_ptrk) atslab__0; 
-} pats_ccomp_runtime2_tyexn ;
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_prerr_string)
-ATSdyncst_mac(atspre_prerr_newline)
-ATSdyncst_mac(atspre_exit)
-ATSdyncst_extfun(atsruntime_handle_uncaughtexn_rest, (atstype_exnconptr), atsvoid_t0ype) ;
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-/*
-assumelst-declaration(beg)
-*/
-/*
-assumelst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-
-/* ****** ****** */
-
-/*
-/home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1541(line=43, offs=3) -- 2287(line=72, offs=4)
-*/
-/*
-local: 
-global: atsruntime_handle_uncaughtexn$0$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atsvoid_t0ype
-atsruntime_handle_uncaughtexn(void *arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec_void(tmpret0) ;
-ATStmpdec(tmp1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec_void(tmp3) ;
-ATStmpdec_void(tmp4) ;
-ATStmpdec_void(tmp5) ;
-ATStmpdec_void(tmp6) ;
-ATStmpdec_void(tmp7) ;
-ATStmpdec_void(tmp8) ;
-ATStmpdec_void(tmp9) ;
-ATStmpdec_void(tmp10) ;
-ATStmpdec_void(tmp11) ;
-ATStmpdec_void(tmp12) ;
-ATStmpdec_void(tmp13) ;
-ATStmpdec_void(tmp14) ;
-ATStmpdec_void(tmp15) ;
-ATStmpdec_void(tmp16) ;
-/* tmpvardeclst(end) */
-/* funbodyinstrlst(beg) */
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1509(line=42, offs=1) -- 2287(line=72, offs=4)
-*/
-ATSINSflab(__patsflab_atsruntime_handle_uncaughtexn):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1641(line=51, offs=1) -- 2280(line=70, offs=65)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1659(line=53, offs=3) -- 1672(line=53, offs=16)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
-*/
-ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__AssertExn)) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1672(line=53, offs=16) -- 1672(line=53, offs=16)
-*/
-ATSINSlab(__atstmplab1):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1693(line=54, offs=14) -- 1706(line=54, offs=27)
-*/
-ATSINSmove_void(tmp3, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38)
-*/
-ATSINSmove_void(tmp4, atspre_prerr_string(ATSPMVstring(": AssertExn"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38)
-*/
-ATSINSmove_void(tmp5, atspre_prerr_newline()) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1748(line=55, offs=42) -- 1754(line=55, offs=48)
-*/
-ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1788(line=57, offs=3) -- 1803(line=57, offs=18)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
-*/
-ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__NotFoundExn)) { ATSINSgoto(__atstmplab4) ; } ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1803(line=57, offs=18) -- 1803(line=57, offs=18)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1824(line=58, offs=14) -- 1837(line=58, offs=27)
-*/
-ATSINSmove_void(tmp6, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40)
-*/
-ATSINSmove_void(tmp7, atspre_prerr_string(ATSPMVstring(": NotFoundExn"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40)
-*/
-ATSINSmove_void(tmp8, atspre_prerr_newline()) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1881(line=59, offs=44) -- 1887(line=59, offs=50)
-*/
-ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 1940(line=61, offs=22)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
-*/
-ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__GenerallyExn)) { ATSINSgoto(__atstmplab6) ; } ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1940(line=61, offs=22) -- 1940(line=61, offs=22)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1936(line=61, offs=18) -- 1939(line=61, offs=21)
-*/
-ATSINSmove(tmp1, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 2039(line=64, offs=6)
-*/
-/*
-ATSINSfreecon(arg0) ;
-*/
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1961(line=62, offs=14) -- 1974(line=62, offs=27)
-*/
-ATSINSmove_void(tmp9, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
-*/
-ATSINSmove_void(tmp10, atspre_prerr_string(ATSPMVstring(": GenerallyExn: "))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
-*/
-ATSINSmove_void(tmp11, atspre_prerr_string(tmp1)) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
-*/
-ATSINSmove_void(tmp12, atspre_prerr_newline()) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2026(line=63, offs=52) -- 2032(line=63, offs=58)
-*/
-ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2086(line=65, offs=23)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
-*/
-ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__IllegalArgExn)) { ATSINSgoto(__atstmplab8) ; } ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2086(line=65, offs=23) -- 2086(line=65, offs=23)
-*/
-ATSINSlab(__atstmplab7):
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2082(line=65, offs=19) -- 2085(line=65, offs=22)
-*/
-ATSINSmove(tmp2, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ;
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2186(line=68, offs=6)
-*/
-/*
-ATSINSfreecon(arg0) ;
-*/
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2107(line=66, offs=14) -- 2120(line=66, offs=27)
-*/
-ATSINSmove_void(tmp13, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
-*/
-ATSINSmove_void(tmp14, atspre_prerr_string(ATSPMVstring(": IllegalArgExn: "))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
-*/
-ATSINSmove_void(tmp15, atspre_prerr_string(tmp2)) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
-*/
-ATSINSmove_void(tmp16, atspre_prerr_newline()) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2173(line=67, offs=53) -- 2179(line=67, offs=59)
-*/
-ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2219(line=70, offs=4) -- 2219(line=70, offs=4)
-*/
-ATSINSlab(__atstmplab8):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2240(line=70, offs=25) -- 2279(line=70, offs=64)
-*/
-ATSINSmove_void(tmpret0, atsruntime_handle_uncaughtexn_rest(arg0)) ;
-
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/* funbodyinstrlst(end) */
-ATSreturn_void(tmpret0) ;
-} /* end of [atsruntime_handle_uncaughtexn] */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_runtime2_dats.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_memalloc.c b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_memalloc.c
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_memalloc.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: April, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_LIBC
-
-extern
-void
-atsruntime_mfree_undef (void *ptr)
-{
- atsruntime_mfree_libc (ptr) ; return ;
-}
-extern
-void
-*atsruntime_malloc_undef (size_t bsz)
-{
- return atsruntime_malloc_libc (bsz) ;
-}
-extern
-void
-*atsruntime_calloc_undef
-  (size_t asz, size_t tsz)
-{
- return atsruntime_calloc_libc (asz, tsz) ;
-}
-extern
-void
-*atsruntime_realloc_undef
-   (void *ptr, size_t bsz)
-{
- return atsruntime_realloc_libc (ptr, bsz) ;
-}
-
-#endif // ATS_MEMALLOC_LIBC
-
-/* ****** ****** */
-
-#ifdef ATS_MEMALLOC_GCBDW
-
-extern
-void
-atsruntime_mfree_undef (void *ptr)
-{
- atsruntime_mfree_gcbdw (ptr) ; return ;
-}
-extern
-void
-*atsruntime_malloc_undef (size_t bsz)
-{
- return atsruntime_malloc_gcbdw (bsz) ;
-}
-extern
-void
-*atsruntime_calloc_undef
-  (size_t asz, size_t tsz)
-{
- return atsruntime_calloc_gcbdw (asz, tsz) ;
-}
-extern
-void
-*atsruntime_realloc_undef
-   (void *ptr, size_t bsz)
-{
- return atsruntime_realloc_gcbdw (ptr, bsz) ;
-}
-
-#endif // ATS_MEMALLOC_GCBDW
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_runtime_memalloc.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_trywith.c b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_trywith.c
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_runtime_trywith.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: April, 2013 *)
-*/
-
-/* ****** ****** */
-//
-#include "pats_ccomp_basics.h"
-#include "pats_ccomp_typedefs.h"
-#include "pats_ccomp_exception.h"
-//
-/* ****** ****** */
-//
-// HX-2013-06:
-// it is only for single-threaded programs
-//
-/* ****** ****** */
-
-extern
-atsexnframe_ptr
-*my_atsexnframe_getref ()
-{
-//
-static
-atsexnframe_t *my_atsexnframe = (void*)0 ;
-//
-return &(my_atsexnframe) ;
-//
-} // end of [my_atsexnframe_getref]
-
-/* ****** ****** */
-
-extern
-void
-atsruntime_raise
-  (void *exn0)
-{
-//
-  atsexnframe_t *frame ;
-  frame = *(my_atsexnframe_getref()) ;
-//
-  do {
-    if (!frame) break ;
-    (frame)->exn = (atstype_exnconptr)exn0 ;
-    atspre_longjmp((frame)->env, 1/*retval*/) ;
-  } while (0) ; // end of [do]
-//
-  atsruntime_handle_uncaughtexn(exn0) ;
-//
-  return ;
-//
-} /* end of [atsruntime_raise] */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_runtime_trywith.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_typedefs.h b/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_typedefs.h
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/pats_ccomp_typedefs.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* ******************************************************************* */
-/*                                                                     */
-/*                         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: October, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef PATS_CCOMP_TYPEDEFS_H
-#define PATS_CCOMP_TYPEDEFS_H
-
-/* ****** ****** */
-
-/*
-** HX:
-** of indefinite size
-*/
-struct atstype_struct ;
-
-/* ****** ****** */
-
-typedef void atstype_void ;
-typedef void atsvoid_t0ype ;
-
-/* ****** ****** */
-
-typedef int atstype_int ;
-typedef unsigned int atstype_uint ;
-
-typedef long int atstype_lint ;
-typedef unsigned long int atstype_ulint ;
-
-typedef long long int atstype_llint ;
-typedef unsigned long long int atstype_ullint ;
-
-typedef short int atstype_sint ;
-typedef unsigned short int atstype_usint ;
-
-/* ****** ****** */
-
-typedef atstype_lint atstype_ssize ;
-typedef atstype_ulint atstype_size ;
-
-/* ****** ****** */
-//
-// HX: true/false: 1/0
-//
-typedef int atstype_bool ;
-//
-/* ****** ****** */
-
-typedef unsigned char atstype_byte ;
-
-/* ****** ****** */
-
-typedef char atstype_char ;
-typedef signed char atstype_schar ;
-typedef unsigned char atstype_uchar ;
-
-/* ****** ****** */
-
-typedef char *atstype_string ;
-typedef char *atstype_stropt ;
-typedef char *atstype_strptr ;
-
-/* ****** ****** */
-
-typedef float atstype_float ;
-typedef double atstype_double ;
-typedef long double atstype_ldouble ;
-
-/* ****** ****** */
-/*
-** HX: for pointers
-*/
-typedef void *atstype_ptr ;
-typedef void *atstype_ptrk ;
-/*
-** HX: for references
-*/
-typedef void *atstype_ref ;
-/*
-** HX: for boxed values
-*/
-typedef void* atstype_boxed ;
-/*
-** HX: for [datconptr]
-*/
-typedef void* atstype_datconptr ;
-/*
-** HX: for [datcontyp]
-*/
-typedef void* atstype_datcontyp ;
-
-/* ****** ****** */
-
-#ifdef \
-_ATS_CCOMP_EXCEPTION_NONE_
-//
-// HX: should a message be issued?
-//
-#else
-//
-typedef struct
-{
-  atstype_int exntag ;
-  atstype_string exnmsg ;
-} atstype_exncon ;
-//
-typedef
-atstype_exncon *atstype_exnconptr ;
-//
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-
-/* ****** ****** */
-/*
-** HX: for pointers to arrays
-*/
-typedef void* atstype_arrptr ;
-/*
-** HX: for arrays plus size info
-*/
-typedef
-struct {
-  atstype_arrptr ptr ; atstype_size size ;
-} atstype_arrpsz ;
-
-/* ****** ****** */
-
-typedef void* atstype_funptr ;
-typedef void* atstype_cloptr ;
-
-/* ****** ****** */
-
-#define atstkind_type(tk) tk
-#define atstkind_t0ype(tk) tk
-
-/* ****** ****** */
-//
-// HX-2014-09-16:
-// making it unusable unless
-// _ATS_ARRAY_FIELD is defined
-//
-#ifdef _ATS_ARRAY_FIELD_
-#define atstyarr_field(fname) fname[]
-#else
-#define atstyarr_field(fname) atstyarr_field_undef(fname)
-#endif // end of [_ATS_ARRAY_FIELD_]
-//
-/* ****** ****** */
-//
-// HX-2014-05:
-// making it not usable!!!
-//
-#ifdef _ATSTYPE_VAR_SIZE_
-// HX: it is set by the user
-#else
-#define _ATSTYPE_VAR_SIZE_ 0X10000
-#endif // end of [#ifdef]
-//
-// HX-2014-05:
-// for 8-bit or 16-bit march,
-// _ATSTYPE_VAR_SIZE can be set to 0X100
-//
-typedef
-struct{char _[_ATSTYPE_VAR_SIZE_];} atstype_var[0] ;
-//
-/* ****** ****** */
-
-#define atstyvar_type(a) atstype_var
-
-/* ****** ****** */
-
-#define atstybox_type(hit) atstype_boxed
-
-/* ****** ****** */
-
-#define atstyclo_top struct{ void *cfun; }
-#define atstyclo_type(flab) flab##__closure_t0ype
-
-/* ****** ****** */
-
-#define atsvararg_type(hit) ...
-
-/* ****** ****** */
-
-#define atsrefarg0_type(hit) hit
-#define atsrefarg1_type(hit) atstype_ref
-
-/* ****** ****** */
-
-#endif /* PATS_CCOMP_TYPEDEFS_H */
-
-/* ****** ****** */
-
-/* end of [pats_ccomp_typedefs.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/alloca.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/alloca.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/alloca.cats
+++ /dev/null
@@ -1,61 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2014 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA
-#define ATSLIB_LIBATS_LIBC_CATS_ALLOCA
-
-/* ****** ****** */
-
-#include <alloca.h>
-
-/* ****** ****** */
-//
-#define atslib_libats_libc_alloca(bsz) alloca(bsz)
-//
-/* ****** ****** */
-//
-#define atslib_libats_libc_ptr_alloca_tsz(tsz) alloca(tsz)
-//
-#define atslib_libats_libc_array_ptr_alloca_tsz(asz, tsz) alloca((asz)*(tsz))
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA
-
-/* ****** ****** */
-
-/* end of [alloca.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dirent.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dirent.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dirent.cats
+++ /dev/null
@@ -1,120 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT
-#define ATSLIB_LIBATS_LIBC_CATS_DIRENT
-
-/* ****** ****** */
-
-#include <sys/types.h>
-#include <dirent.h> // HX: after sys/types
-
-/* ****** ****** */
-
-#include "share/H/pats_atslib.h"
-
-/* ****** ****** */
-//
-typedef DIR atslib_libats_libc_DIR_type ;
-//
-typedef
-struct dirent atslib_libats_libc_dirent_type ;
-//
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_dirent_get_d_ino(ent) \
-(((atslib_libats_libc_dirent_type*)ent)->d_ino)
-#define \
-atslib_libats_libc_dirent_get_d_name(ent) \
-(((atslib_libats_libc_dirent_type*)ent)->d_name)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_direntp_get_d_name(entp) \
-(((atslib_libats_libc_dirent_type*)entp)->d_name)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_direntp_free(x) atspre_mfree_gc(x)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_alphasort alphasort
-#define atslib_libats_libc_versionsort versionsort
-
-/* ****** ****** */
-
-#define atslib_libats_libc_opendir opendir
-
-/* ****** ****** */
-
-#define atslib_libats_libc_closedir closedir
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_readdir readdir
-#define \
-atslib_libats_libc_readdir_r(dirp, ent, res) \
-  readdir_r((DIR*)dirp, (struct dirent*)ent, (struct dirent**)res)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_scandir(dirp, namelst, filter, compar) \
-  scandir((char*)dirp, (struct dirent***)namelst, (void*)filter, (void*)compar)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_rewinddir rewinddir
-
-/* ****** ****** */
-
-#define atslib_libats_libc_seekdir seekdir
-#define atslib_libats_libc_telldir telldir
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT
-
-/* ****** ****** */
-
-/* end of [dirent.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dlfcn.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dlfcn.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/dlfcn.cats
+++ /dev/null
@@ -1,75 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: December, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN
-#define ATSLIB_LIBATS_LIBC_CATS_DLFCN
-
-/* ****** ****** */
-
-#include <dlfcn.h>
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_dlopen dlopen
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_dlclose dlclose
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_dlerror dlerror
-
-/* ****** ****** */
-
-#define atslib_libats_libc_dlsym dlsym
-
-/* ****** ****** */
-
-#define atslib_libats_libc_dladdr dladdr
-#define atslib_libats_libc_dlvsym dlvsym
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN
-
-/* ****** ****** */
-
-/* end of [dlfcn.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/errno.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/errno.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/errno.cats
+++ /dev/null
@@ -1,85 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/libc/CATS/CODEGEN/errno.atxt
-** Time of generation: Mon Sep  5 20:36:41 2016
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO
-#define ATSLIB_LIBATS_LIBC_CATS_ERRNO
-
-/* ****** ****** */
-
-#include <errno.h>
-
-/* ****** ****** */
-
-typedef int errno_t ;
-
-/* ****** ****** */
-
-#define ENONE 0
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_the_errno_get() (errno)
-#define \
-atslib_libats_libc_the_errno_set(x) (errno = (x))
-#define \
-atslib_libats_libc_the_errno_reset() (errno = ENONE)
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atslib_libats_libc_the_errno_test(errno_t x)
-{
-  return (errno==(x)) ? atsbool_true : atsbool_false ;
-} /* end of [atslib_libats_libc_the_errno_test] */
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO
-
-/* ****** ****** */
-
-/* end of [errno.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fcntl.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fcntl.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fcntl.cats
+++ /dev/null
@@ -1,85 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL
-#define ATSLIB_LIBATS_LIBC_CATS_FCNTL
-
-/* ****** ****** */
-
-#include <sys/types.h>
-#include <fcntl.h> // HX: after sys/types
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fildes_get_int(fd) (fd)
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atslib_libats_libc_fildes_isgtez
-  (atstype_int fd)
-{
-  return (fd >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_fildes_isgtez]
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_fcntlflags_lor(x1, x2) ((x1)|(x2))
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_fcntl_getfl(fd) fcntl(fd, F_GETFL)
-#define \
-atslib_libats_libc_fcntl_setfl(fd, flags) fcntl(fd, F_SETFL, flags)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_open_flags(path, flags) open((char*)path, flags)
-#define \
-atslib_libats_libc_open_flags_mode(path, flags, mode) open((char*)path, flags, mode)
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL
-
-/* ****** ****** */
-
-/* end of [fcntl.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/float.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/float.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/float.cats
+++ /dev/null
@@ -1,51 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: October, 2014 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT
-#define ATSLIB_LIBATS_LIBC_CATS_FLOAT
-
-/* ****** ****** */
-
-#include <float.h>
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT
-
-/* ****** ****** */
-
-/* end of [float.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fnmatch.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fnmatch.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/fnmatch.cats
+++ /dev/null
@@ -1,58 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH
-#define ATSLIB_LIBATS_LIBC_CATS_FNMATCH
-
-/* ****** ****** */
-
-#include <fnmatch.h>
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_fnmatch_null(pat, str) fnmatch((char*)pat, (char*)str, 0)
-#define \
-atslib_libats_libc_fnmatch_flags(pat, str, flags) fnmatch((char*)pat, (char*)str, flags)
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH
-
-/* ****** ****** */
-
-/* end of [fnmatch.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/malloc.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/malloc.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/malloc.cats
+++ /dev/null
@@ -1,60 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC
-#define ATSLIB_LIBATS_LIBC_CATS_MALLOC
-
-/* ****** ****** */
-
-#include <malloc.h>
-
-/* ****** ****** */
-
-#define atslib_libats_libc_mallopt mallopt
-#define atslib_libats_libc_malloc_trim malloc_trim
-#define atslib_libats_libc_malloc_usable_size malloc_usable_size
-#define atslib_libats_libc_malloc_stats malloc_stats
-#define atslib_libats_libc_malloc_get_state malloc_get_state
-#define atslib_libats_libc_malloc_set_state malloc_set_state
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC
-
-/* ****** ****** */
-
-/* end of [malloc.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/math.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/math.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/math.cats
+++ /dev/null
@@ -1,235 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_MATH
-#define ATSLIB_LIBATS_LIBC_CATS_MATH
-
-/* ****** ****** */
-
-#include <math.h>
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_isfinite_float isfinite
-#define \
-atslib_libats_libc_isfinite_double isfinite
-#define \
-atslib_libats_libc_isfinite_ldouble isfinite
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_isnormal_float isnormal
-#define \
-atslib_libats_libc_isnormal_double isnormal
-#define \
-atslib_libats_libc_isnormal_ldouble isnormal
-
-/* ****** ****** */
-
-#define atslib_libats_libc_isinf_float isinf
-#define atslib_libats_libc_isinf_double isinf
-#define atslib_libats_libc_isinf_ldouble isinf
-
-/* ****** ****** */
-
-#define atslib_libats_libc_isnan_float isnan
-#define atslib_libats_libc_isnan_double isnan
-#define atslib_libats_libc_isnan_ldouble isnan
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fpclassify_float fpclassify
-#define atslib_libats_libc_fpclassify_double fpclassify
-#define atslib_libats_libc_fpclassify_ldouble fpclassify
-
-/* ****** ****** */
-
-#define atslib_libats_libc_ceil_float ceilf
-#define atslib_libats_libc_ceil_double ceil
-#define atslib_libats_libc_ceil_ldouble ceill
-
-/* ****** ****** */
-
-#define atslib_libats_libc_floor_float floorf
-#define atslib_libats_libc_floor_double floor
-#define atslib_libats_libc_floor_ldouble floorl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_round_float roundf
-#define atslib_libats_libc_round_double round
-#define atslib_libats_libc_round_ldouble roundl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_trunc_float truncf
-#define atslib_libats_libc_trunc_double trunc
-#define atslib_libats_libc_trunc_ldouble truncl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fmod_float fmodf
-#define atslib_libats_libc_fmod_double fmod
-#define atslib_libats_libc_fmod_ldouble fmodl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fmax_float fmaxf
-#define atslib_libats_libc_fmax_double fmax
-#define atslib_libats_libc_fmax_ldouble fmaxl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fmin_float fminf
-#define atslib_libats_libc_fmin_double fmin
-#define atslib_libats_libc_fmin_ldouble fminl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fdim_float fdimf
-#define atslib_libats_libc_fdim_double fdim
-#define atslib_libats_libc_fdim_ldouble fdiml
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fma_float fmaf
-#define atslib_libats_libc_fma_double fma
-#define atslib_libats_libc_fma_ldouble fmal
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sqrt_float sqrtf
-#define atslib_libats_libc_sqrt_double sqrt
-#define atslib_libats_libc_sqrt_ldouble sqrtl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_cbrt_float cbrtf
-#define atslib_libats_libc_cbrt_double cbrt
-#define atslib_libats_libc_cbrt_ldouble cbrtl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_pow_float powf
-#define atslib_libats_libc_pow_double pow
-#define atslib_libats_libc_pow_ldouble powl
-
-/* ****** ****** */
-
-#define atslib_libats_libc_exp_float expf
-#define atslib_libats_libc_exp_double exp
-#define atslib_libats_libc_exp_ldouble expl
-
-/* ****** ****** */
-//
-#define atslib_libats_libc_log_float logf
-#define atslib_libats_libc_log_double log
-#define atslib_libats_libc_log_ldouble logl
-//
-#define atslib_libats_libc_log10_float log10f
-#define atslib_libats_libc_log10_double log10
-#define atslib_libats_libc_log10_ldouble log10l
-//
-/* ****** ****** */
-//
-#define atslib_libats_libc_sin_float sinf
-#define atslib_libats_libc_sin_double sin
-#define atslib_libats_libc_sin_ldouble sinl
-//
-#define atslib_libats_libc_cos_float cosf
-#define atslib_libats_libc_cos_double cos
-#define atslib_libats_libc_cos_ldouble cosl
-//
-#define atslib_libats_libc_tan_float tanf
-#define atslib_libats_libc_tan_double tan
-#define atslib_libats_libc_tan_ldouble tanl
-//
-/* ****** ****** */
-//
-#define atslib_libats_libc_asin_float asinf
-#define atslib_libats_libc_asin_double asin
-#define atslib_libats_libc_asin_ldouble asinl
-//
-#define atslib_libats_libc_acos_float acosf
-#define atslib_libats_libc_acos_double acos
-#define atslib_libats_libc_acos_ldouble cosl
-//
-#define atslib_libats_libc_atan_float atanf
-#define atslib_libats_libc_atan_double atan
-#define atslib_libats_libc_atan_ldouble atanl
-//
-#define atslib_libats_libc_atan2_float atan2f
-#define atslib_libats_libc_atan2_double atan2
-#define atslib_libats_libc_atan2_ldouble atan2l
-//
-/* ****** ****** */
-//
-#define atslib_libats_libc_sinh_float sinhf
-#define atslib_libats_libc_sinh_double sinh
-#define atslib_libats_libc_sinh_ldouble sinhl
-//
-#define atslib_libats_libc_cosh_float coshf
-#define atslib_libats_libc_cosh_double cosh
-#define atslib_libats_libc_cosh_ldouble coshl
-//
-#define atslib_libats_libc_tanh_float tanhf
-#define atslib_libats_libc_tanh_double tanh
-#define atslib_libats_libc_tanh_ldouble tanhl
-//
-/* ****** ****** */
-
-#define atslib_libats_libc_asinh_float asinhf
-#define atslib_libats_libc_asinh_double asinh
-#define atslib_libats_libc_asinh_ldouble asinhl
-//
-#define atslib_libats_libc_acosh_float acoshf
-#define atslib_libats_libc_acosh_double acosh
-#define atslib_libats_libc_acosh_ldouble acoshl
-//
-#define atslib_libats_libc_atanh_float atanhf
-#define atslib_libats_libc_atanh_double atanh
-#define atslib_libats_libc_atanh_ldouble atanhl
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MATH
-
-/* ****** ****** */
-
-/* end of [math.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/signal.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/signal.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/signal.cats
+++ /dev/null
@@ -1,125 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: April, 2014 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL
-#define ATSLIB_LIBATS_LIBC_CATS_SIGNAL
-
-/* ****** ****** */
-
-#include <signal.h>
-
-/* ****** ****** */
-//
-typedef int signum_t ;
-//
-typedef
-void (*sighandler_t)(signum_t) ;
-//
-/* ****** ****** */
-
-typedef
-struct sigaction
-atslib_libats_libc_sigaction_struct ;
-
-/* ****** ****** */
-
-#define atslib_libats_libc_signal signal
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sigaddset sigaddset
-#define atslib_libats_libc_sigdelset sigdelset
-#define atslib_libats_libc_sigemptyset sigemptyset
-#define atslib_libats_libc_sigfillset sigfillset
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_sigaction sigaction
-#define \
-atslib_libats_libc_sigaction_null(sgn, act) \
-atslib_libats_libc_sigaction(sgn, act, (atslib_libats_libc_sigaction_struct*)0)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_kill kill
-#define atslib_libats_libc_killpg killpg
-#define atslib_libats_libc_raise raise
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sigset sigset
-#define atslib_libats_libc_sighold sighold
-#define atslib_libats_libc_sigignore sigignore
-#define atslib_libats_libc_sigrelse sigrelse
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sigwait sigwait
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sigpause sigpause
-#define atslib_libats_libc_sigsuspend sigsuspend
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sigpending sigpending
-#define atslib_libats_libc_siginterrupt siginterrupt
-
-/* ****** ****** */
-
-#define atslib_libats_libc_psignal psignal
-
-/* ****** ****** */
-
-/*
-//
-// declared in <string.h>
-//
-extern
-char* strsignal (int signum) ;
-*/
-#define atslib_libats_libc_strsignal strsignal
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL
-
-/* ****** ****** */
-
-/* end of [signal.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdio.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdio.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdio.cats
+++ /dev/null
@@ -1,226 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: September, 2011 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO
-#define ATSLIB_LIBATS_LIBC_CATS_STDIO
-
-/* ****** ****** */
-
-#include <stdio.h>
-/*
-extern
-void
-perror (const char* str) ; // in [stdio.h]
-*/
-extern void exit (int status) ; // in [stdlib.h]
-
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_FILEptr_is_null(p) (p == 0)
-#define \
-atslib_libats_libc_FILEptr_isnot_null(p) (p != 0)
-//
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_clearerr(p) clearerr(((FILE*)p))
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fopen fopen
-#define atslib_libats_libc_fopen_ref_exn atslib_libats_libc_fopen_exn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fclose fclose
-#define atslib_libats_libc_fclose0 atslib_libats_libc_fclose
-#define atslib_libats_libc_fclose1 atslib_libats_libc_fclose
-#define atslib_libats_libc_fclose0_exn atslib_libats_libc_fclose_exn
-#define atslib_libats_libc_fclose1_exn atslib_libats_libc_fclose_exn
-
-/*
-#define atslib_libats_libc_fclose_stdin() atslib_libats_libc_fclose_exn(stdin)
-#define atslib_libats_libc_fclose_stdout() atslib_libats_libc_fclose_exn(stdout)
-#define atslib_libats_libc_fclose_stderr() atslib_libats_libc_fclose_exn(stderr)
-*/
-
-/* ****** ****** */
-//
-#define atslib_libats_libc_fflush fflush
-#define atslib_libats_libc_fflush0 atslib_libats_libc_fflush
-#define atslib_libats_libc_fflush1 atslib_libats_libc_fflush
-#define atslib_libats_libc_fflush0_exn atslib_libats_libc_fflush_exn
-#define atslib_libats_libc_fflush1_exn atslib_libats_libc_fflush_exn
-//
-#define atslib_libats_libc_fflush_all() atslib_libats_libc_fclose_exn((FILE*)0)
-#define atslib_libats_libc_fflush_stdout() atslib_libats_libc_fclose_exn(stdout)
-//
-/* ****** ****** */
-
-#define atslib_libats_libc_fileno fileno
-#define atslib_libats_libc_fileno0 atslib_libats_libc_fileno
-#define atslib_libats_libc_fileno1 atslib_libats_libc_fileno
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fdopen fdopen
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_feof(p) feof(((FILE*)p))
-#define atslib_libats_libc_feof0 atslib_libats_libc_feof
-#define atslib_libats_libc_feof1 atslib_libats_libc_feof
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_ferror(p) ferror(((FILE*)p))
-#define atslib_libats_libc_ferror0 atslib_libats_libc_ferror
-#define atslib_libats_libc_ferror1 atslib_libats_libc_ferror
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fgetc fgetc
-#define atslib_libats_libc_fgetc0 atslib_libats_libc_fgetc
-#define atslib_libats_libc_fgetc1 atslib_libats_libc_fgetc
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getchar getchar
-#define atslib_libats_libc_getchar0 atslib_libats_libc_getchar
-#define atslib_libats_libc_getchar1 atslib_libats_libc_getchar
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fputc fputc
-#define atslib_libats_libc_fputc0_int atslib_libats_libc_fputc
-#define atslib_libats_libc_fputc0_char(c, fp) atslib_libats_libc_fputc((int)c, fp)
-#define atslib_libats_libc_fputc1_int atslib_libats_libc_fputc
-#define atslib_libats_libc_fputc1_char(c, fp) atslib_libats_libc_fputc((int)c, fp)
-
-#define atslib_libats_libc_fputc0_exn_int atslib_libats_libc_fputc_exn
-#define atslib_libats_libc_fputc0_exn_char atslib_libats_libc_fputc_exn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_putchar putchar
-#define atslib_libats_libc_putchar0 atslib_libats_libc_putchar
-#define atslib_libats_libc_putchar1 atslib_libats_libc_putchar
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fgets fgets
-#define atslib_libats_libc_fgets0 atslib_libats_libc_fgets
-#define atslib_libats_libc_fgets1 atslib_libats_libc_fgets
-#define atslib_libats_libc_fgets1_err atslib_libats_libc_fgets
-#define atslib_libats_libc_fgets0_gc atslib_libats_libc_fgets_gc
-#define atslib_libats_libc_fgets1_gc atslib_libats_libc_fgets_gc
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fputs fputs
-#define atslib_libats_libc_fputs0 atslib_libats_libc_fputs
-#define atslib_libats_libc_fputs1 atslib_libats_libc_fputs
-#define atslib_libats_libc_fputs0_exn atslib_libats_libc_fputs_exn
-#define atslib_libats_libc_fputs1_exn atslib_libats_libc_fputs_exn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_puts puts
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fread fread
-#define atslib_libats_libc_fread0 atslib_libats_libc_fread
-#define atslib_libats_libc_fread1 atslib_libats_libc_fread
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fwrite fwrite
-#define atslib_libats_libc_fwrite0 atslib_libats_libc_fwrite
-#define atslib_libats_libc_fwrite1 atslib_libats_libc_fwrite
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fseek fseek
-#define atslib_libats_libc_fseek0 atslib_libats_libc_fseek
-#define atslib_libats_libc_fseek1 atslib_libats_libc_fseek
-
-/* ****** ****** */
-
-#define atslib_libats_libc_ftell ftell
-#define atslib_libats_libc_ftell0 atslib_libats_libc_ftell
-#define atslib_libats_libc_ftell1 atslib_libats_libc_ftell
-
-/* ****** ****** */
-
-#define atslib_libats_libc_perror perror
-
-/* ****** ****** */
-
-#define atslib_libats_libc_popen popen
-
-/* ****** ****** */
-
-#define atslib_libats_libc_pclose0_exn atslib_libats_libc_pclose_exn
-#define atslib_libats_libc_pclose1_exn atslib_libats_libc_pclose_exn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_remove remove
-#define atslib_libats_libc_rename rename
-
-/* ****** ****** */
-
-#define atslib_libats_libc_rewind rewind
-#define atslib_libats_libc_rewind0 atslib_libats_libc_rewind
-#define atslib_libats_libc_rewind1 atslib_libats_libc_rewind
-
-/* ****** ****** */
-
-#define atslib_libats_libc_tmpfile tmpfile
-#define atslib_libats_libc_tmpfile_ref_exn atslib_libats_libc_tmpfile_exn
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO
-
-/* ****** ****** */
-
-/* end of [stdio.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdlib.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdlib.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/stdlib.cats
+++ /dev/null
@@ -1,206 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_STDLIB
-#define \
-ATSLIB_LIBATS_LIBC_CATS_STDLIB
-
-/* ****** ****** */
-
-#include <stdlib.h>
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_abort abort
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc__Exit _Exit
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_atexit atexit
-
-/* ****** ****** */
-
-#define atslib_libats_libc_abs abs
-#define atslib_libats_libc_labs labs
-#define atslib_libats_libc_llabs llabs
-
-/* ****** ****** */
-
-#define atslib_libats_libc_div div
-#define atslib_libats_libc_ldiv ldiv
-#define atslib_libats_libc_lldiv lldiv
-
-/* ****** ****** */
-
-#define atslib_libats_libc_a64l a64l
-#define atslib_libats_libc_l64a l64a
-
-/* ****** ****** */
-
-#define atslib_libats_libc_atoi atoi
-#define atslib_libats_libc_atol atol
-#define atslib_libats_libc_atoll atoll
-
-/* ****** ****** */
-
-#define atslib_libats_libc_atof atof
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_strtol0(nptr, base) \
-atslib_libats_libc_strtol_unsafe(nptr, 0, base)
-#define \
-atslib_libats_libc_strtol1(nptr, endptr, base) \
-atslib_libats_libc_strtol_unsafe(nptr, endptr, base)
-#define \
-atslib_libats_libc_strtol_unsafe(nptr, endptr, base) \
-strtol((char*)(nptr), (char**)(endptr), base)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_strtoll0(nptr, base) \
-atslib_libats_libc_strtoll_unsafe(nptr, 0, base)
-#define \
-atslib_libats_libc_strtoll1(nptr, endptr, base) \
-atslib_libats_libc_strtoll_unsafe(nptr, endptr, base)
-#define \
-atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) \
-strtoll((char*)(nptr), (char**)(endptr), base)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_strtof0(nptr) \
-atslib_libats_libc_strtof_unsafe(nptr, 0)
-#define \
-atslib_libats_libc_strtof1(nptr, endptr) \
-atslib_libats_libc_strtof_unsafe(nptr, endptr)
-#define \
-atslib_libats_libc_strtof_unsafe(nptr, endptr) \
-strtof((char*)(nptr), (char**)(endptr))
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_strtod0(nptr) \
-atslib_libats_libc_strtod_unsafe(nptr, 0)
-#define \
-atslib_libats_libc_strtod1(nptr, endptr) \
-atslib_libats_libc_strtod_unsafe(nptr, endptr)
-#define \
-atslib_libats_libc_strtod_unsafe(nptr, endptr) \
-strtod((char*)(nptr), (char**)(endptr))
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getenv getenv
-#define atslib_libats_libc_putenv putenv
-#define atslib_libats_libc_setenv setenv
-#define atslib_libats_libc_unsetenv unsetenv
-
-/* ****** ****** */
-
-#define atslib_libats_libc_rand rand
-#define atslib_libats_libc_srand srand
-#define atslib_libats_libc_rand_r rand_r
-
-/* ****** ****** */
-
-#define atslib_libats_libc_random random
-#define atslib_libats_libc_srandom srandom
-
-/* ****** ****** */
-//
-#define atslib_libats_libc_seed48 seed48
-#define atslib_libats_libc_srand48 srand48
-//
-#define atslib_libats_libc_drand48 drand48
-#define atslib_libats_libc_erand48 erand48
-#define atslib_libats_libc_lrand48 lrand48
-#define atslib_libats_libc_nrand48 nrand48
-#define atslib_libats_libc_mrand48 mrand48
-#define atslib_libats_libc_jrand48 jrand48
-#define atslib_libats_libc_lcong48 lcong48
-//
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_qsort\
-(base, nmemb, size, compar) \
-qsort(base, nmemb, size, (void*)compar)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_bsearch\
-(key, base, nmemb, size, compar) \
-bsearch(key, base, nmemb, size, (void*)compar)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_mkstemp mkstemp
-#define \
-atslib_libats_libc_mkostemp mkostemp
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_mfree_libc free
-#define \
-atslib_libats_libc_malloc_libc malloc
-
-/* ****** ****** */
-
-#define atslib_libats_libc_system system
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDLIB
-
-/* ****** ****** */
-
-/* end of [stdlib.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/string.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/string.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/string.cats
+++ /dev/null
@@ -1,139 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_STRING
-#define ATSLIB_LIBATS_LIBC_CATS_STRING
-
-/* ****** ****** */
-
-#include <errno.h>
-#include <string.h>
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strcmp strcmp
-#define atslib_libats_libc_strncmp strncmp
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strcoll strcoll
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strspn strspn
-#define atslib_libats_libc_strcspn strcspn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strlen strlen
-#define atslib_libats_libc_strnlen strnlen
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strcat strcat
-#define atslib_libats_libc_strcat_unsafe strcat
-#define atslib_libats_libc_strncat_unsafe strncat
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strcpy strcpy
-#define atslib_libats_libc_strcpy_unsafe strcpy
-#define atslib_libats_libc_strncpy_unsafe strncpy
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strdup strdup
-#define atslib_libats_libc_strndup strndup
-#define atslib_libats_libc_strdup_free atsruntime_mfree_libc
-
-#define atslib_libats_libc_strdupa strdupa
-#define atslib_libats_libc_strndupa strndupa
-#define atslib_libats_libc_strdupa_free atsruntime_afree_libc
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strfry strfry
-
-/* ****** ****** */
-
-#define atslib_libats_libc_memcpy memcpy
-#define atslib_libats_libc_memcpy_unsafe memcpy
-
-/* ****** ****** */
-
-#define atslib_libats_libc_memccpy_unsafe memccpy
-
-/* ****** ****** */
-
-#define atslib_libats_libc_mempcpy mempcpy
-#define atslib_libats_libc_mempcpy_unsafe mempcpy
-
-/* ****** ****** */
-
-#define atslib_libats_libc_memset_unsafe memset
-
-/* ****** ****** */
-
-#define atslib_libats_libc_memmove_unsafe memmove
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strerror strerror
-#define atslib_libats_libc_strerror_r strerror_r
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atslib_libats_libc_strdup_gc
-  (atstype_string src)
-{
-  char *dst ;
-  size_t len, len1 ;
-  len = atslib_libats_libc_strlen((char*)src) ;
-  len1 = len + 1;
-  dst = atspre_malloc_gc(len1) ;
-  return atslib_libats_libc_memcpy(dst, src, len1) ;
-} // end of [atslib_libats_libc_strdup_gc]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRING
-
-/* ****** ****** */
-
-/* end of [string.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/strings.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/strings.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/strings.cats
+++ /dev/null
@@ -1,64 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: February, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS
-#define ATSLIB_LIBATS_LIBC_CATS_STRINGS
-
-/* ****** ****** */
-
-#include <strings.h>
-
-/* ****** ****** */
-
-#define atslib_libats_libc_index_int index
-#define atslib_libats_libc_index_char(c) index((int)c)
-
-#define atslib_libats_libc_rindex_int rindex
-#define atslib_libats_libc_rindex_char(c) rindex((int)c)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_strcasecmp strcasecmp
-#define atslib_libats_libc_strncasecmp strncasecmp
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS
-
-/* ****** ****** */
-
-/* end of [strings.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/mman.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/mman.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/mman.cats
+++ /dev/null
@@ -1,59 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: October, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
-#define ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
-
-/* ****** ****** */
-//
-#include <fcntl.h>
-#include <sys/types.h>
-//
-#include <sys/mman.h>
-//
-/* ****** ****** */
-
-#define atslib_libats_libc_shm_open shm_open
-#define atslib_libats_libc_shm_unlink shm_unlink
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
-
-/* ****** ****** */
-
-/* end of [mman.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket.cats
+++ /dev/null
@@ -1,135 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: November, 2014 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
-
-/* ****** ****** */
-//
-#include <unistd.h>
-#include <sys/socket.h>
-//
-/* ****** ****** */
-//
-/*
-//
-// socket address family
-//
-typedef
-unsigned short int sa_family_t;
-*/
-//
-// socket protocol family
-//
-typedef
-unsigned short int sp_family_t;
-//
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_socket_AF_type socket_AF_type
-#define \
-atslib_libats_libc_socket_PF_type socket_PF_type
-
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_bind_err(fd, sa, len) \
-  bind(fd, (const struct sockaddr*)sa, len)
-//
-extern
-void
-atslib_libats_libc_bind_exn
-(
-  int sockfd, atstype_ptr sa, socklen_t salen
-); // end of [atslib_libats_libc_bind_exn]
-//
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_listen_err(fd, qsz) listen(fd, qsz)
-//
-extern
-void
-atslib_libats_libc_listen_exn(int sockfd, int listenqsz);
-//
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_connect_err(fd, sa, len) \
-  connect(fd, (const struct sockaddr*)sa, len)
-//
-extern
-void
-atslib_libats_libc_connect_exn
-(
-  int sockfd, atstype_ptr sa, socklen_t salen
-); // end of [atslib_libats_libc_connect_exn]
-//
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_accept_err(fd, sa, len) \
-  accept(fd, (struct sockaddr*)sa, (socklen_t*)len)
-//
-#define \
-atslib_libats_libc_accept_null_err(fd) atslib_libats_libc_accept_err(fd, 0, 0)
-//
-/* ****** ****** */
-
-#define atslib_libats_libc_socket_close(fd) close(fd)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_shutdown(fd, how) shutdown(fd, how)
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_socket_read(fd, bufp, bsz) read(fd, (char*)bufp, bsz)
-#define \
-atslib_libats_libc_socket_write(fd, bufp, bsz) write(fd, (const char*)bufp, bsz)
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
-
-/* ****** ****** */
-
-/* end of [socket.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket_in.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket_in.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/socket_in.cats
+++ /dev/null
@@ -1,78 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: November, 2014 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
-
-/* ****** ****** */
-//
-#include <sys/socket.h>
-#include <netinet/in.h>
-//
-/* ****** ****** */
-//
-#ifdef memset
-#else
-extern
-void *memset (void *p, int c, size_t n) ;
-#endif // ifdef(memset)
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atslib_libats_libc_sockaddr_in_init
-(
-  atstype_ptr sa
-, sa_family_t af, in_addr_t inp, in_port_t port
-) {
-  struct sockaddr_in *sa2 = sa ;
-  (void)memset(sa2, 0, sizeof(struct sockaddr_in)) ;
-  sa2->sin_family = af ;
-  sa2->sin_addr.s_addr = inp ;
-  sa2->sin_port = port ;
-} // end of [atslib_libats_libc_sockaddr_in_init]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
-
-/* ****** ****** */
-
-/* end of [socket_in.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/stat.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/stat.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/stat.cats
+++ /dev/null
@@ -1,82 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
-
-/* ****** ****** */
-
-#include <sys/stat.h>
-
-/* ****** ****** */
-
-typedef
-struct stat
-atslib_libats_libc_stat_struct ;
-
-/* ****** ****** */
-
-#define atslib_libats_libc_umask umask
-
-/* ****** ****** */
-
-#define atslib_libats_libc_chmod chmod
-
-/* ****** ****** */
-
-#define atslib_libats_libc_mkdir mkdir
-#define atslib_libats_libc_mkdirat mkdirat
-
-/* ****** ****** */
-
-#define atslib_libats_libc_mkfifo mkfifo
-
-/* ****** ****** */
-
-#define atslib_libats_libc_stat stat
-#define atslib_libats_libc_fstat fstat
-#define atslib_libats_libc_lstat lstat
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
-
-/* ****** ****** */
-
-/* end of [stat.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/time.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/time.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/time.cats
+++ /dev/null
@@ -1,94 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: August, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
-
-/* ****** ****** */
-
-#include <sys/time.h>
-
-/* ****** ****** */
-//
-typedef
-struct timeval
-atslib_libats_libc_timeval_type ;
-typedef
-struct timezone
-atslib_libats_libc_timezone_type ;
-//
-typedef
-struct itimerval
-atslib_libats_libc_itimerval_type ;
-//
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_gettimeofday_tv(tv) gettimeofday(tv, NULL)
-#define \
-atslib_libats_libc_gettimeofday_tz(tz) gettimeofday(NULL, tz)
-
-#define \
-atslib_libats_libc_settimeofday_tv(tv) settimeofday(tv, NULL)
-#define \
-atslib_libats_libc_settimeofday_tz(tz) settimeofday(NULL, tz)
-#define \
-atslib_libats_libc_settimeofday_tvtz(tv, tz) settimeofday(tv, tz)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_utimes utimes
-#define atslib_libats_libc_futimes futimes
-#define atslib_libats_libc_futimesat futimesat
-
-/* ****** ****** */
-//
-#define atslib_libats_libc_getitimer getitimer
-//
-#define atslib_libats_libc_setitimer setitimer
-#define \
-atslib_libats_libc_setitimer_null(which, itval) setitimer(which, itval, NULL)
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
-
-/* ****** ****** */
-
-/* end of [time.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/types.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/types.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/types.cats
+++ /dev/null
@@ -1,166 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
-
-/* ****** ****** */
-
-#include <sys/types.h>
-
-/* ****** ****** */
-
-typedef mode_t atslib_libats_libc_mode_type ;
-
-/* ****** ****** */
-//
-// HX-2013-8:
-// [atslib_libats_libc_time_type] is already
-// defined in [libats/libc/CATS/time.cats]
-//
-typedef time_t atslib_libats_libc_types_time_type ;
-//
-/* ****** ****** */
-
-#if(0)
-//
-// HX-2013-05: where are they?
-// HX-2013-06: they are declared in [time.h]
-//
-typedef clock_t atslib_libats_libc_clock_type ;
-typedef clockid_t atslib_libats_libc_clockid_type ;
-#endif
-
-/* ****** ****** */
-
-typedef ino_t atslib_libats_libc_ino_type ;
-typedef off_t atslib_libats_libc_off_type ;
-
-/* ****** ****** */
-
-typedef pid_t atslib_libats_libc_pid_type ;
-typedef uid_t atslib_libats_libc_uid_type ;
-typedef gid_t atslib_libats_libc_gid_type ;
-
-/* ****** ****** */
-
-ATSinline()
-atslib_libats_libc_mode_type
-atslib_libats_libc_lor_mode_mode
-(
-  atslib_libats_libc_mode_type m1
-, atslib_libats_libc_mode_type m2
-) {
-  return (m1 | m2) ;
-} // end of [atslib_libats_libc_lor_mode_mode]
-
-ATSinline()
-atslib_libats_libc_mode_type
-atslib_libats_libc_land_mode_mode
-(
-  atslib_libats_libc_mode_type m1
-, atslib_libats_libc_mode_type m2
-) {
-  return (m1 & m2) ;
-} // end of [atslib_libats_libc_land_mode_mode]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atslib_libats_libc_lt_time_time
-(
-  atslib_libats_libc_types_time_type t1
-, atslib_libats_libc_types_time_type t2
-)
-{
-  return \
-  (t1 < t2 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_lt_time_time]
-ATSinline()
-atstype_bool
-atslib_libats_libc_lte_time_time
-(
-  atslib_libats_libc_types_time_type t1
-, atslib_libats_libc_types_time_type t2
-)
-{
-  return \
-  (t1 <= t2 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_lte_time_time]
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_gt_time_time(t1, t2) \
-  atslib_libats_libc_lt_time_time(t2, t1)
-#define \
-atslib_libats_libc_gte_time_time(t1, t2) \
-  atslib_libats_libc_lte_time_time(t2, t1)
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atslib_libats_libc_eq_time_time
-(
-  atslib_libats_libc_types_time_type t1
-, atslib_libats_libc_types_time_type t2
-)
-{
-  return (t1 == t2 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_eq_time_time]
-ATSinline()
-atstype_bool
-atslib_libats_libc_neq_time_time
-(
-  atslib_libats_libc_types_time_type t1
-, atslib_libats_libc_types_time_type t2
-)
-{
-  return (t1 != t2 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_neq_time_time]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
-
-/* ****** ****** */
-
-/* end of [types.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/wait.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/wait.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/wait.cats
+++ /dev/null
@@ -1,60 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: October, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef \
-ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
-#define \
-ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
-
-/* ****** ****** */
-//
-#include <sys/wait.h>
-//
-/* ****** ****** */
-//
-#define \
-atslib_libats_libc_wait_void() wait((int*)0)
-#define \
-atslib_libats_libc_wait_status(x) wait((int*)x)
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
-
-/* ****** ****** */
-
-/* end of [wait.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/time.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/time.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/time.cats
+++ /dev/null
@@ -1,206 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_TIME
-#define ATSLIB_LIBATS_LIBC_CATS_TIME
-
-/* ****** ****** */
-
-#include <time.h>
-
-/* ****** ****** */
-//
-typedef
-time_t
-atslib_libats_libc_time_type ;
-//
-typedef
-struct tm
-atslib_libats_libc_tm_struct_type ;
-//
-/* ****** ****** */
-
-typedef
-clock_t
-atslib_libats_libc_clock_type ;
-
-/* ****** ****** */
-
-typedef
-struct timespec
-atslib_libats_libc_timespec_type ;
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_difftime difftime
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_time_get() time((time_t*)0)
-
-ATSinline()
-atstype_bool
-atslib_libats_libc_time_getset
-(
-  atstype_ref tval
-) {
-  return (time((time_t*)tval) >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atslib_libats_libc_time_getset]
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_ctime ctime
-#define \
-atslib_libats_libc_ctime_r ctime_r
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_sec
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_sec ;
-} // end of [atslib_libats_libc_tm_get_sec]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_min
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_min ;
-} // end of [atslib_libats_libc_tm_get_min]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_hour
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_hour ;
-} // end of [atslib_libats_libc_tm_get_hour]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_mday
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_mday ;
-} // end of [atslib_libats_libc_tm_get_mday]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_mon
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_mon ;
-} // end of [atslib_libats_libc_tm_get_mon]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_year
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_year ;
-} // end of [atslib_libats_libc_tm_get_year]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_wday
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_wday ;
-} // end of [atslib_libats_libc_tm_get_wday]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_yday
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_yday ;
-} // end of [atslib_libats_libc_tm_get_yday]
-
-ATSinline()
-atstype_int
-atslib_libats_libc_tm_get_isdst
-  (atstype_ptr tm) {
-  return ((struct tm*)tm)->tm_isdst ;
-} // end of [atslib_libats_libc_tm_get_isdst]
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_mktime mktime
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_asctime asctime
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_gmtime gmtime
-#define \
-atslib_libats_libc_gmtime_r gmtime_r
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_localtime localtime
-#define \
-atslib_libats_libc_localtime_r localtime_r
-
-/* ****** ****** */
-
-#define atslib_libats_libc_tzset tzset
-
-/* ****** ****** */
-
-#define atslib_libats_libc_clock clock
-
-#define \
-atslib_libats_libc_clock_getres clock_getres
-
-/* ****** ****** */
-
-#define \
-atslib_libats_libc_clock_gettime clock_gettime
-#define \
-atslib_libats_libc_clock_settime clock_settime
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_TIME
-
-/* ****** ****** */
-
-/* end of [time.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/unistd.cats b/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/unistd.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/unistd.cats
+++ /dev/null
@@ -1,174 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
-(* Start time: April, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD
-#define ATSLIB_LIBATS_LIBC_CATS_UNISTD
-
-/* ****** ****** */
-
-#include <unistd.h>
-
-/* ****** ****** */
-
-#define atslib_libats_libc_close close
-#define atslib_libats_libc_close0 atslib_libats_libc_close
-#define atslib_libats_libc_close1 atslib_libats_libc_close
-#define atslib_libats_libc_close0_exn atslib_libats_libc_close_exn
-#define atslib_libats_libc_close1_exn atslib_libats_libc_close_exn
-
-/* ****** ****** */
-
-#define atslib_libats_libc_dup dup
-#define atslib_libats_libc_dup_fildes dup
-#define atslib_libats_libc_dup2 dup2
-#define atslib_libats_libc_dup3 dup3
-
-/* ****** ****** */
-
-#define atslib_libats_libc_execv(path, argv) execv((char*)path, (char**)argv)
-#define atslib_libats_libc_execvp(path, argv) execvp((char*)path, (char**)argv)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_encrypt encrypt
-
-/* ****** ****** */
-
-#define atslib_libats_libc_fork fork
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getcwd getcwd
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getlogin getlogin
-#define atslib_libats_libc_getlogin_r getlogin_r
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getpid getpid
-#define atslib_libats_libc_getppid getppid
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getuid getuid
-#define atslib_libats_libc_setuid setuid
-#define atslib_libats_libc_geteuid geteuid
-#define atslib_libats_libc_seteuid seteuid
-
-/* ****** ****** */
-
-#define atslib_libats_libc_getgid getgid
-#define atslib_libats_libc_setgid setgid
-#define atslib_libats_libc_getegid getegid
-#define atslib_libats_libc_setegid setegid
-
-/* ****** ****** */
-
-#define atslib_libats_libc_setreuid setreuid
-#define atslib_libats_libc_setregid setregid
-#define atslib_libats_libc_setresuid setresuid
-#define atslib_libats_libc_setresgid setresgid
-
-/* ****** ****** */
-
-#define atslib_libats_libc_setfsuid setfsuid
-#define atslib_libats_libc_setfsgid setfsgid
-
-/* ****** ****** */
-
-#define atslib_libats_libc_pause pause
-
-/* ****** ****** */
-
-#define atslib_libats_libc_read_err read
-#define atslib_libats_libc_write_err write
-
-/* ****** ****** */
-
-#define atslib_libats_libc_pread pread
-#define atslib_libats_libc_pwrite pwrite
-
-/* ****** ****** */
-
-#define atslib_libats_libc_alarm alarm
-#define atslib_libats_libc_alarm_set alarm
-#define atslib_libats_libc_alarm_cancel() alarm(0)
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sleep_int sleep
-#define atslib_libats_libc_sleep_uint sleep
-
-/* ****** ****** */
-
-#define atslib_libats_libc_usleep_int usleep
-#define atslib_libats_libc_usleep_uint usleep
-
-/* ****** ****** */
-
-#define atslib_libats_libc_rmdir rmdir
-
-/* ****** ****** */
-
-#define atslib_libats_libc_link link
-#define atslib_libats_libc_unlink unlink
-
-/* ****** ****** */
-
-#define atslib_libats_libc_symlink symlink
-#define atslib_libats_libc_readlink readlink
-
-/* ****** ****** */
-
-#define atslib_libats_libc_sync sync
-#define atslib_libats_libc_fsync fsync
-#define atslib_libats_libc_fdatasync fdatasync
-
-/* ****** ****** */
-
-#define atslib_libats_libc_truncate truncate
-#define atslib_libats_libc_ftruncate ftruncate
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD
-
-/* ****** ****** */
-
-/* end of [unistd.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/array.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/array.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/array.cats
+++ /dev/null
@@ -1,115 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/array.atxt
-** Time of generation: Mon Jun  4 01:42:55 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_ARRAY
-#define ATSLIB_PRELUDE_CATS_ARRAY
-
-/* ****** ****** */
-//
-// [stdlib.h]
-//
-extern
-void qsort
-(
-  void *base, size_t nmemb, size_t size
-, int(*compar)(const void *, const void *)
-) ; // end of [qsort]
-extern
-void *bsearch
-(
-  const void *key
-, const void *base
-, size_t nmemb, size_t size
-, int (*compar)(const void *, const void *)
-) ; // end of [bsearch]
-//
-#define atspre_array_qsort qsort
-#define atspre_array_bsearch bsearch
-//
-/* ****** ****** */
-//
-// [string.h]
-//
-#ifndef memcpy
-extern
-void *memcpy(void *dst, const void *src, size_t n) ;
-#endif // #ifndef
-#ifndef memmove
-extern
-void *memmove(void *dst, const void *src, size_t n) ;
-#endif // #ifndef
-//
-#define atspre_array_memcpy memcpy
-#define atspre_array_memmove memmove
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_array_foreach_funenv_tsz
-(
-  atstype_ptr A
-, atstype_size n
-, atstype_size tsz
-, atstype_funptr f
-, atstype_boxed env
-) {
-  char *p ;
-  size_t i ;
-  p = (char*)A ;
-  for (i = 0 ; i < n ; i += 1)
-  {
-    ((void(*)(void*, void*))(f))(p, env) ; p += tsz ;
-  }
-  return ;
-} // end of [atspre_array_foreach_funenv_tsz]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAY
-
-/* ****** ****** */
-
-/* end of [array.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayptr.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayptr.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayptr.cats
+++ /dev/null
@@ -1,82 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/arrayptr.atxt
-** Time of generation: Mon Jun  4 01:42:55 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR
-#define ATSLIB_PRELUDE_CATS_ARRAYPTR
-
-/* ****** ****** */
-
-ATSinline()
-atstype_arrptr
-atspre_arrpsz_get_ptrsize
-(
-  atstype_arrpsz psz, atstype_ref asz
-) {
-  *(size_t*)asz = psz.size ; return (psz.ptr) ;
-} // en of [atspre_arrpsz_get_ptrsize]
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_arrayptr_free
-  (atstype_arrptr p0) { ATS_MFREE (p0) ; return ; }
-// end of [atspre_arrayptr_free]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_arrptr
-atspre_arrayptr_make_arrpsz
-  (atstype_arrpsz psz) { return (psz).ptr ; }
-// end of [atspre_arrayptr_make_arrpsz]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR
-
-/* ****** ****** */
-
-/* end of [arrayptr.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayref.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayref.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/arrayref.cats
+++ /dev/null
@@ -1,63 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/arrayref.atxt
-** Time of generation: Mon Jun  4 01:42:55 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_ARRAYREF
-#define ATSLIB_PRELUDE_CATS_ARRAYREF
-
-/* ****** ****** */
-
-ATSinline()
-atstype_arrptr
-atspre_arrayref_make_arrpsz
-  (atstype_arrpsz psz) { return (psz).ptr ; }
-// end of [atspre_arrayref_make_arrpsz]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYREF
-
-/* ****** ****** */
-
-/* end of [arrayref.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/basics.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/basics.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/basics.cats
+++ /dev/null
@@ -1,251 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/basics.atxt
-** Time of generation: Mon Jun  4 01:42:51 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_BASICS
-#define ATSLIB_PRELUDE_CATS_BASICS
-
-/* ****** ****** */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_lor_int_int
-(
-  atstype_int x1
-, atstype_int x2
-) {
-  return ((x1)|(x2)) ;
-} /* [atspre_lor_int_int] */
-
-ATSinline()
-atstype_int
-atspre_land_int_int
-(
-  atstype_int x1
-, atstype_int x2
-) {
-  return ((x1)&(x2)) ;
-} /* [atspre_land_int_int] */
-
-ATSinline()
-atstype_int
-atspre_lxor_int_int
-(
-  atstype_int x1
-, atstype_int x2
-) {
-  return ((x1)^(x2)) ;
-} /* [atspre_lxor_int_int] */
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_int2sgn
-  (atstype_int x)
-{
-  return ((x < 0) ? -1 : ((x > 0) ? 1 : 0)) ;
-} /* [atspre_int2sgn] */
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_cloptr_free
-(
-  atstype_cloptr pclo
-) {
-  ATS_MFREE (pclo) ; return ;
-} /* [atspre_cloptr_free] */
-
-/* ****** ****** */
-
-ATSinline()
-atstype_string
-atspre_argv_get_at
-(
-  atstype_arrptr argv, atstype_int i
-)
-{
-  return (((atstype_string*)argv)[i]) ;
-} /* end of [atspre_argv_get_at] */
-
-ATSinline()
-atsvoid_t0ype
-atspre_argv_set_at
-(
-  atstype_arrptr argv
-, atstype_int i, atstype_string x
-)
-{
-  ((atstype_string*)argv)[i] = x ; return ;
-} /* end of [atspre_argv_set_at] */
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_exit
- (atstype_int ecode) { exit(ecode) ; return ; }
-// end of [atspre_exit]
-
-ATSinline()
-atsvoid_t0ype
-atspre_exit_errmsg
-(
-  atstype_int ecode, atstype_string msg
-)
-{
-  fprintf(stderr, "exit(ATS): %s", (char*)msg); exit(ecode); return;
-} // end of [atspre_exit_errmsg]
-
-/* ****** ****** */
-
-#define atspre_exit_void atspre_exit
-#define atspre_exit_errmsg_void atspre_exit_errmsg
-
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atspre_assert_bool
-  (atstype_bool b)
-{
-  if (!b) exit(1) ; return ;
-} /* endfun */
-//
-#define atspre_assert_bool0 atspre_assert_bool
-#define atspre_assert_bool1 atspre_assert_bool
-//
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atspre_assert_errmsg_bool
-(
-  atstype_bool b, atstype_string msg
-)
-{
-  if (!b) {
-    fprintf(stderr, "%s", (char*)msg) ; exit(1) ;
-  } // end of [if]
-  return ;
-} /* endfun */
-//
-#define atspre_assert_errmsg_bool0 atspre_assert_errmsg_bool
-#define atspre_assert_errmsg_bool1 atspre_assert_errmsg_bool
-//
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atspre_assert_errmsg2_bool
-(
-  atstype_bool b
-, atstype_string msg1, atstype_string msg2
-)
-{
-  if (!b) {
-    fprintf(stderr, "%s%s", (char*)msg1, (char*)msg2) ; exit(1) ;
-  } // end of [if]
-  return ;
-} /* endfun */
-//
-#define atspre_assert_errmsg2_bool0 atspre_assert_errmsg2_bool
-#define atspre_assert_errmsg2_bool1 atspre_assert_errmsg2_bool
-//
-/* ****** ****** */
-//
-#if(0)
-//
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_void
-(
-  atstype_ref out
-, atstype_void arg
-)
-{
-  return/*do-nothing*/;
-}
-//
-#define
-atspre_print_void(x) atspre_fprint_void(stdout, x)
-#define
-atspre_prerr_void(x) atspre_fprint_void(stderr, x)
-//
-#endif // end of [if(0)]
-//  
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_newline
-  (atstype_ref out)
-{
-  int n ;
-  int err = -1 ;
-  n = fprintf((FILE*)out, "\n") ;
-  if (n > 0) err = fflush((FILE*)out) ;
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_newline] failed.") ; exit(1) ;
-  } // end of [if]
-  return ;
-} /* endfun */
-//
-#define atspre_print_newline() atspre_fprint_newline(stdout)
-#define atspre_prerr_newline() atspre_fprint_newline(stderr)
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_BASICS
-
-/* ****** ****** */
-
-/* end of [basics.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/bool.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/bool.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/bool.cats
+++ /dev/null
@@ -1,207 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/bool.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: February, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_BOOL
-#define ATSLIB_PRELUDE_CATS_BOOL
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_int2bool (atstype_int x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-}
-#define atspre_int2bool0 atspre_int2bool
-#define atspre_int2bool1 atspre_int2bool
-
-/* ****** ****** */
-
-#define atspre_bool2int0(x) x
-#define atspre_bool2int1(x) x
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_neg_bool
-  (atstype_bool b) {
-  return (b) ? atsbool_false : atsbool_true ;
-} // end of [atspre_neg_bool]
-#define atspre_neg_bool0 atspre_neg_bool
-#define atspre_neg_bool1 atspre_neg_bool
-
-ATSinline()
-atstype_bool
-atspre_add_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1) ? atsbool_true : (b2) ;
-} // end of [atspre_add_bool_bool]
-#define atspre_add_bool0_bool0 atspre_add_bool_bool
-#define atspre_add_bool0_bool1 atspre_add_bool_bool
-#define atspre_add_bool1_bool0 atspre_add_bool_bool
-#define atspre_add_bool1_bool1 atspre_add_bool_bool
-
-ATSinline()
-atstype_bool
-atspre_mul_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1) ? (b2) : atsbool_false ;
-} // end of [atspre_mul_bool_bool]
-#define atspre_mul_bool0_bool0 atspre_mul_bool_bool
-#define atspre_mul_bool0_bool1 atspre_mul_bool_bool
-#define atspre_mul_bool1_bool0 atspre_mul_bool_bool
-#define atspre_mul_bool1_bool1 atspre_mul_bool_bool
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_xor_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1) ? (!b2) : (b2) ;
-} // end of [atspre_xor_bool_bool]
-#define atspre_xor_bool0_bool0 atspre_xor_bool_bool
-#define atspre_xor_bool1_bool1 atspre_xor_bool_bool
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_lt_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1) ? atsbool_false : (b2) ;
-} // end of [atspre_lt_bool_bool]
-#define atspre_lt_bool0_bool0 atspre_lt_bool_bool
-#define atspre_lt_bool1_bool1 atspre_lt_bool_bool
-ATSinline()
-atstype_bool
-atspre_lte_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1) ? (b2) : atsbool_true ;
-} // end of [atspre_lte_bool_bool]
-#define atspre_lte_bool0_bool0 atspre_lte_bool_bool
-#define atspre_lte_bool1_bool1 atspre_lte_bool_bool
-
-ATSinline()
-atstype_bool
-atspre_gt_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b2) ? atsbool_false : (b1) ;
-} // end of [atspre_gt_bool_bool]
-#define atspre_gt_bool0_bool0 atspre_gt_bool_bool
-#define atspre_gt_bool1_bool1 atspre_gt_bool_bool
-ATSinline()
-atstype_bool
-atspre_gte_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b2) ? (b1) : atsbool_true ;
-} // end of [atspre_gte_bool_bool]
-#define atspre_gte_bool0_bool0 atspre_gte_bool_bool
-#define atspre_gte_bool1_bool1 atspre_gte_bool_bool
-
-ATSinline()
-atstype_bool
-atspre_eq_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1 == b2) ;
-} // end of [atspre_eq_bool_bool]
-#define atspre_eq_bool0_bool0 atspre_eq_bool_bool
-#define atspre_eq_bool1_bool1 atspre_eq_bool_bool
-ATSinline()
-atstype_bool
-atspre_neq_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1 != b2) ;
-} // end of [atspre_neq_bool_bool]
-#define atspre_neq_bool0_bool0 atspre_neq_bool_bool
-#define atspre_neq_bool1_bool1 atspre_neq_bool_bool
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_compare_bool_bool (
-  atstype_bool b1, atstype_bool b2
-) {
-  return (b1 - b2) ;
-} // end of [atspre_compare_bool_bool]
-#define atspre_compare_bool0_bool0 atspre_compare_bool_bool
-#define atspre_compare_bool1_bool1 atspre_compare_bool_bool
-
-/* ****** ****** */
-
-ATSinline()
-atstype_string
-atspre_bool2string (
-  atstype_bool x
-) {
-  return (x) ? "true" : "false" ;
-} // end of [atspre_bool2string]
-
-ATSinline()
-atstype_string
-atspre_bool_tostring (
-  atstype_bool x
-) {
-  return (x) ? "true" : "false" ;
-} // end of [atspre_bool_tostring]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_BOOL
-
-/* ****** ****** */
-
-/* end of [bool.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/char.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/char.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/char.cats
+++ /dev/null
@@ -1,529 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/char.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: February, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_CHAR
-#define ATSLIB_PRELUDE_CATS_CHAR
-
-/* ****** ****** */
-
-#include <ctype.h>
-
-/* ****** ****** */
-
-#ifdef __CYGWIN__
-//
-#ifndef isascii
-extern int isascii (int c) ; // _XOPEN_SOURCE
-#endif // end of [isascii]
-
-#ifndef isblank
-extern int isblank (int c) ; // _XOPEN_SOURCE >= 600
-#endif // end of [isblank]
-
-#ifndef toascii
-extern int toascii (int c) ; // _XOPEN_SOURCE
-#endif // end of [toascii]
-//
-#endif // end of [#ifdef(__CYGWIN__)]
-
-/* ****** ****** */
-//
-ATSinline()
-atstype_char
-atspre_int2char
-  (atstype_int i) { return ((atstype_char)i) ; }
-ATSinline()
-atstype_schar
-atspre_int2schar
-  (atstype_int i) { return ((atstype_schar)i) ; }
-ATSinline()
-atstype_uchar
-atspre_int2uchar
-  (atstype_int i) { return ((atstype_uchar)i) ; }
-//
-#define atspre_int2char0 atspre_int2char
-#define atspre_int2schar0 atspre_int2schar
-#define atspre_int2uchar0 atspre_int2uchar
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_int
-atspre_char2int
-  (atstype_char c) { return ((atstype_int)c) ; }
-ATSinline()
-atstype_int
-atspre_schar2int
-  (atstype_schar c) { return ((atstype_int)c) ; }
-ATSinline()
-atstype_int
-atspre_uchar2int
-  (atstype_uchar c) { return ((atstype_int)c) ; }
-//
-#define atspre_char2int0 atspre_char2int
-#define atspre_schar2int0 atspre_schar2int
-#define atspre_uchar2int0 atspre_uchar2int
-//
-#define atspre_char2int1 atspre_char2int
-#define atspre_schar2int1 atspre_schar2int
-#define atspre_uchar2int1 atspre_uchar2int
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_uint
-atspre_char2uint
-  (atstype_char c) { return ((atstype_uint)c) ; }
-ATSinline()
-atstype_uint
-atspre_schar2uint
-  (atstype_schar c) { return ((atstype_uint)c) ; }
-ATSinline()
-atstype_uint
-atspre_uchar2uint
-  (atstype_uchar c) { return ((atstype_uint)c) ; }
-//
-#define atspre_char2uint0 atspre_char2uint
-#define atspre_schar2uint0 atspre_schar2uint
-#define atspre_uchar2uint0 atspre_uchar2uint
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_int
-atspre_char2u2int
-  (atstype_char c)
-  { return ((atstype_int)((atstype_uchar)c)) ; }
-ATSinline()
-atstype_uint
-atspre_char2u2uint
-  (atstype_char c)
-  { return ((atstype_uint)((atstype_uchar)c)) ; }
-//
-#define atspre_char2u2int0 atspre_char2u2int
-#define atspre_char2u2uint0 atspre_char2u2uint
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_char_iseqz
-  (atstype_char c)
-{
-  return ((c == 0) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_char_iseqz]
-#define atspre_char0_iseqz(c) atspre_char_iseqz(c) 
-#define atspre_char1_iseqz(c) atspre_char_iseqz(c) 
-
-ATSinline()
-atstype_bool
-atspre_char_isneqz
-  (atstype_char c)
-{
-  return ((c != 0) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_char_isneqz]
-#define atspre_char0_isneqz(c) atspre_char_isneqz(c) 
-#define atspre_char1_isneqz(c) atspre_char_isneqz(c) 
-
-/* ****** ****** */
-//
-ATSinline()
-atstype_char
-atspre_add_char_int
-(
-  atstype_char c1, atstype_int i2
-) { return (c1 + i2) ; }
-//
-#define atspre_add_char0_int0 atspre_add_char_int
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_char
-atspre_sub_char_int
-(
-  atstype_char c1, atstype_int i2
-) { return (c1 - i2) ; }
-//
-#define atspre_sub_char0_int0 atspre_sub_char_int
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_int
-atspre_sub_char_char
-(
-  atstype_char c1, atstype_char c2
-) { return (c1 - c2) ; }
-//
-#define atspre_sub_char0_char0 atspre_sub_char_char
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_lt_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 < i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lt_int_int]
-#define atspre_lt_char0_char0 atspre_lt_int_int
-#define atspre_lt_char1_char1 atspre_lt_int_int
-
-ATSinline()
-atstype_bool
-atspre_lte_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 <= i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lte_int_int]
-#define atspre_lte_char0_char0 atspre_lte_int_int
-#define atspre_lte_char1_char1 atspre_lte_int_int
-
-ATSinline()
-atstype_bool
-atspre_gt_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 > i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gt_int_int]
-#define atspre_gt_char0_char0 atspre_gt_int_int
-#define atspre_gt_char1_char1 atspre_gt_int_int
-
-ATSinline()
-atstype_bool
-atspre_gte_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 >= i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gte_int_int]
-#define atspre_gte_char0_char0 atspre_gte_int_int
-#define atspre_gte_char1_char1 atspre_gte_int_int
-
-ATSinline()
-atstype_bool
-atspre_eq_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 == i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_eq_int_int]
-#define atspre_eq_char0_char0 atspre_eq_int_int
-#define atspre_eq_char1_char1 atspre_eq_int_int
-
-ATSinline()
-atstype_bool
-atspre_neq_int_int
-  (atstype_int i1, atstype_int i2) {
-  return (i1 != i2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_neq_int_int]
-#define atspre_neq_char0_char0 atspre_neq_int_int
-#define atspre_neq_char1_char1 atspre_neq_int_int
-
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_compare_int_int
-  (atstype_int i1, atstype_int i2)
-{
-  return (i1 - i2) ;
-} // end of [atspre_compare_int_int]
-#define atspre_compare_char0_char0(c1, c2) atspre_compare_int_int(c1, c2)
-#define atspre_compare_char1_char1(c1, c2) atspre_compare_int_int(c1, c2)
-
-/* ****** ****** */
-
-#define atspre_eq_char0_int0(c, i) atspre_eq_int_int(c, i)
-#define atspre_eq_int0_char0(i, c) atspre_eq_int_int(i, c)
-#define atspre_neq_char0_int0(c, i) atspre_neq_int_int(c, i)
-#define atspre_neq_int0_char0(i, c) atspre_neq_int_int(i, c)
-
-/* ****** ****** */
-
-#define atspre_compare_char0_int0(c, i) atspre_compare_int_int(c, i)
-#define atspre_compare_int0_char0(i, c) atspre_compare_int_int(i, c)
-
-/* ****** ****** */
-//
-// unsigned characters
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_lt_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 < c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lt_uchar_uchar]
-#define atspre_lt_uchar0_uchar0 atspre_lt_uchar_uchar
-#define atspre_lt_uchar1_uchar1 atspre_lt_uchar_uchar
-
-ATSinline()
-atstype_bool
-atspre_lte_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 <= c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lte_uchar_uchar]
-#define atspre_lte_uchar0_uchar0 atspre_lte_uchar_uchar
-#define atspre_lte_uchar1_uchar1 atspre_lte_uchar_uchar
-
-ATSinline()
-atstype_bool
-atspre_gt_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 > c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gt_uchar_uchar]
-#define atspre_gt_uchar0_uchar0 atspre_gt_uchar_uchar
-#define atspre_gt_uchar1_uchar1 atspre_gt_uchar_uchar
-
-ATSinline()
-atstype_bool
-atspre_gte_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 >= c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gte_uchar_uchar]
-#define atspre_gte_uchar0_uchar0 atspre_gte_uchar_uchar
-#define atspre_gte_uchar1_uchar1 atspre_gte_uchar_uchar
-
-ATSinline()
-atstype_bool
-atspre_eq_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 == c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_eq_uchar_uchar]
-#define atspre_eq_uchar0_uchar0 atspre_eq_uchar_uchar
-#define atspre_eq_uchar1_uchar1 atspre_eq_uchar_uchar
-
-ATSinline()
-atstype_bool
-atspre_neq_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return (c1 != c2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_neq_uchar_uchar]
-#define atspre_neq_uchar0_uchar0 atspre_neq_uchar_uchar
-#define atspre_neq_uchar1_uchar1 atspre_neq_uchar_uchar
-
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_compare_uchar_uchar
-  (atstype_uchar c1, atstype_uchar c2) {
-  return ((atstype_int)c1 - (atstype_int)c2) ;
-} // end of [atspre_compare_uchar_uchar]
-#define atspre_compare_uchar0_uchar0 atspre_compare_uchar_uchar
-#define atspre_compare_uchar1_uchar1 atspre_compare_uchar_uchar
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_isalpha_int
-  (atstype_int c) {
-  return (isalpha(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isalpha_int]
-#define atspre_isalpha_char(c) atspre_isalpha_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_isalnum_int
-  (atstype_int c) {
-  return (isalnum(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isalnum_int]
-#define atspre_isalnum_char(c) atspre_isalnum_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_isascii_int
-  (atstype_int c) {
-  return (isascii(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isascii_int]
-#define atspre_isascii_char(c) atspre_isascii_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_isblank_int
-  (atstype_int c) {
-  return (isblank(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isblank_int]
-#define atspre_isblank_char(c) atspre_isblank_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_isspace_int
-  (atstype_int c) {
-  return (isspace(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isspace_int]
-#define atspre_isspace_char(c) atspre_isspace_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_iscntrl_int
-  (atstype_int c) {
-  return (iscntrl(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_iscntrl_int]
-#define atspre_iscntrl_char(c) atspre_iscntrl_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_isdigit_int
-  (atstype_int c) {
-  return (isdigit(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isdigit_int]
-#define atspre_isdigit_char(c) atspre_isdigit_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_isxdigit_int
-  (atstype_int c) {
-  return (isxdigit(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isxdigit_int]
-#define atspre_isxdigit_char(c) atspre_isxdigit_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_isgraph_int
-  (atstype_int c) {
-  return (isgraph(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isgraph_int]
-#define atspre_isgraph_char(c) atspre_isgraph_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_isprint_int
-  (atstype_int c) {
-  return (isprint(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isprint_int]
-#define atspre_isprint_char(c) atspre_isprint_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_ispunct_int
-  (atstype_int c) {
-  return (ispunct(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_ispunct_int]
-#define atspre_ispunct_char(c) atspre_ispunct_int((atstype_int)(c))
-
-ATSinline()
-atstype_bool
-atspre_islower_int
-  (atstype_int c) {
-  return (islower(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_islower_int]
-#define atspre_islower_char(c) atspre_islower_int((atstype_int)(c))
-ATSinline()
-atstype_bool
-atspre_isupper_int
-  (atstype_int c) {
-  return (isupper(c) ? atsbool_true : atsbool_false) ;
-} // end of [atspre_isupper_int]
-#define atspre_isupper_char(c) atspre_isupper_int((atstype_int)(c))
-
-/* ****** ****** */
-
-#define atspre_toascii toascii
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_tolower_int
-  (atstype_int c) { return tolower(c) ; }
-ATSinline()
-atstype_char
-atspre_tolower_char
-  (atstype_char c) { return tolower(c) ; }
-//
-ATSinline()
-atstype_int
-atspre_toupper_int
-  (atstype_int c) { return toupper(c) ; }
-ATSinline()
-atstype_char
-atspre_toupper_char
-  (atstype_char c) { return toupper(c) ; }
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_char
-atspre_int2digit
-  (atstype_int i) { return ('0' + i) ; }
-// end of [atspre_int2digit]
-ATSinline()
-atstype_char
-atspre_int2xdigit
-  (atstype_int i) {
-  return (i < 10) ? ('0' + i) : ('a' + (i - 10)) ;
-} // end of [atspre_int2xdigit]
-ATSinline()
-atstype_char
-atspre_int2xxdigit
-  (atstype_int i) {
-  return (i < 10) ? ('0' + i) : ('A' + (i - 10)) ;
-} // end of [atspre_int2xxdigit]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_byte2int (atstype_byte b) { return ((atstype_int)b) ; }
-ATSinline()
-atstype_byte
-atspre_int2byte (atstype_int i) { return ((atstype_byte)i) ; }
-
-ATSinline()
-atstype_uint
-atspre_byte2uint (atstype_byte b) { return ((atstype_uint)b) ; }
-ATSinline()
-atstype_byte
-atspre_uint2byte (atstype_uint u) { return ((atstype_byte)u) ; }
-
-/* ****** ****** */
-
-#define atspre_byte2int0 atspre_byte2int
-#define atspre_int2byte0 atspre_int2byte
-#define atspre_byte2uint0 atspre_byte2uint
-#define atspre_uint2byte0 atspre_uint2byte
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_CHAR
-
-/* ****** ****** */
-
-/* end of [char.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/filebas.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/filebas.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/filebas.cats
+++ /dev/null
@@ -1,385 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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 *)
-(* Start time: January, 2013 *)
-(* Authoremail: hwxiATcsDOTbuDOTedu *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/filebas.atxt
-** Time of generation: Mon Jun  4 01:42:54 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_FILEBAS
-#define ATSLIB_PRELUDE_CATS_FILEBAS
-
-/* ****** ****** */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-
-/* ****** ****** */
-
-#define atspre_FILE_stdin stdin
-#define atspre_FILE_stdout stdout
-#define atspre_FILE_stderr stderr
-
-/* ****** ****** */
-
-#define atspre_file_mode_r "r"
-#define atspre_file_mode_rr "r+"
-#define atspre_file_mode_w "w"
-#define atspre_file_mode_ww "w+"
-#define atspre_file_mode_a "a"
-#define atspre_file_mode_aa "a+"
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_test_file_exists
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat((const char*)path, &st) ;
-  return
-  (err==0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_test_file_exists]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_test_file_mode_fun
-(
-  atstype_string path, atstype_funptr pred
-)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return
-  ((atstype_bool(*)(atstype_uint))(pred))(st.st_mode) ? 1 : 0 ;
-}
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_test_file_isreg
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return (S_ISREG(st.st_mode)) ? 1 : 0 ;
-} // end of [atspre_test_file_isreg]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_test_file_isdir
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return (S_ISDIR(st.st_mode)) ? 1 : 0 ;
-} // end of [atspre_test_file_isdir]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_test_file_isblk
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return (S_ISBLK(st.st_mode)) ? 1 : 0 ;
-} // end of [atspre_test_file_isblk]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_test_file_ischr
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return (S_ISCHR(st.st_mode)) ? 1 : 0 ;
-} // end of [atspre_test_file_ischr]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_test_file_isfifo
-  (atstype_string path)
-{
-  int err;
-  struct stat st ;
-  err = stat ((const char*)path, &st) ;
-  if (err < 0) return -1 ;
-  return (S_ISFIFO(st.st_mode)) ? 1 : 0 ;
-} // end of [atspre_test_file_isfifo]
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fileref_close
-  (atstype_ref filr)
-{
-  int err ;
-  err = fclose((FILE*)filr) ;
-  if (err < 0) {
-    fprintf(
-      stderr
-    , "exit(ATS): [atspre_fileref_close] failed.\n"
-    ) ;
-    exit(1) ;
-  }
-  return ;
-} // end of [atspre_fileref_close]
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fileref_flush
-  (atstype_ref filr)
-{
-  int err ;
-  err = fflush((FILE*)filr) ;
-  if (err < 0) {
-    fprintf(
-      stderr
-    , "exit(ATS): [atspre_fileref_fflush] failed.\n"
-    ) ;
-    exit(1) ;
-  }
-  return ;
-} // end of [atspre_fileref_flush]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ref
-atspre_fileref_open_exn
-  (atstype_string path, atstype_string fm)
-{
-  FILE* filr ;
-  filr = fopen((char*)path, (char*)fm) ;
-  if (!filr) {
-    fprintf(
-      stderr
-    , "exit(ATS): [atspre_fileref_open_exn(%s, %s)] failed.\n"
-    , (char*)path, (char*)fm
-    ) ;
-    exit(1) ;
-  }
-  return filr ;
-} // end of [atspre_fileref_open]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_fileref_getc
-  (atstype_ref filr)
-  { return fgetc((FILE*)filr) ; }
-// end of [atspre_fileref_getc]
-
-/* ****** ****** */
-//
-ATSinline()
-atsvoid_t0ype
-atspre_fileref_putc
-(
-  atstype_ref filr, atstype_int c
-) {
-  fputc (c, (FILE*)filr) ; return ;
-} // end of [atspre_fileref_putc]
-//
-#define \
-atspre_fileref_putc_int atspre_fileref_putc
-#define \
-atspre_fileref_putc_char atspre_fileref_putc
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fileref_puts
-( atstype_ref fout
-, atstype_ptr data)
-{
-  fputs((char*)data, (FILE*)fout) ; return ;
-} // end of [atspre_fileref_puts]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_fileref_is_eof
-  (atstype_ref filr)
-{
-  int eof ;
-  eof = feof((FILE*)filr) ;
-  return
-  (eof != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_is_eof]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_int
-(atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%i"
-      , (atstype_int*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_int]
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_uint
-(atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%u"
-      , (atstype_uint*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_uint]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_lint
-(atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%li"
-      , (atstype_lint*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_lint]
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_ulint
-(atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%lu"
-      , (atstype_ulint*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_ulint]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_float
-(atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%f"
-      , (atstype_float*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_float]
-
-ATSinline()
-atstype_bool
-atspre_fileref_load_double
-  (atstype_ref finp, atstype_ref data)
-{
-  int n ;
-  n = fscanf
-      ( (FILE*)finp
-      , "%lf"
-      , (atstype_double*)data) ;
-  return
-  (n==1 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_fileref_load_double]
-
-/* ****** ****** */
-
-extern
-atstype_ptr
-atspre_fileref_get_line_string_main2
-(
-  atstype_int bsz // int bsz
-, atstype_ptr filp // FILE*filp
-, atstype_ref nlen // (int)*nlen
-) ; // endfun
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_FILEBAS
-
-/* ****** ****** */
-
-/* end of [filebas.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/float.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/float.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/float.cats
+++ /dev/null
@@ -1,710 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/float.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: April, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_FLOAT
-#define ATSLIB_PRELUDE_CATS_FLOAT
-
-/* ****** ****** */
-
-ATSinline()
-atstype_float
-atspre_g0int2float_int_float
-  (atstype_int x) { return ((atstype_float)x) ; }
-// end of [atspre_g0int2float_int_float]
-
-ATSinline()
-atstype_double
-atspre_g0int2float_int_double
-  (atstype_int x) { return ((atstype_double)x) ; }
-// end of [atspre_g0int2float_int_double]
-
-ATSinline()
-atstype_double
-atspre_g0int2float_lint_double
-  (atstype_lint x) { return ((atstype_double)x) ; }
-// end of [atspre_g0int2float_lint_double]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_g0float2int_float_int
-  (atstype_float x) { return ((atstype_int)x) ; }
-ATSinline()
-atstype_lint
-atspre_g0float2int_float_lint
-  (atstype_float x) { return ((atstype_lint)x) ; }
-ATSinline()
-atstype_llint
-atspre_g0float2int_float_llint
-  (atstype_float x) { return ((atstype_llint)x) ; }
-
-ATSinline()
-atstype_int
-atspre_g0float2int_double_int
-  (atstype_double x) { return ((atstype_int)x) ; }
-ATSinline()
-atstype_lint
-atspre_g0float2int_double_lint
-  (atstype_double x) { return ((atstype_lint)x) ; }
-ATSinline()
-atstype_llint
-atspre_g0float2int_double_llint
-  (atstype_double x) { return ((atstype_llint)x) ; }
-
-/* ****** ****** */
-
-ATSinline()
-atstype_float
-atspre_g0float2float_float_float (atstype_float x) { return (x) ; }
-
-ATSinline()
-atstype_double
-atspre_g0float2float_double_double (atstype_double x) { return (x) ; }
-
-ATSinline()
-atstype_double
-atspre_g0float2float_float_double
-(
-atstype_float x
-)
-{
- return ((atstype_double)x) ;
-}
-
-ATSinline()
-atstype_float
-atspre_g0float2float_double_float
-(
-atstype_double x
-)
-{
- return ((atstype_float)x) ;
-}
-
-/* ****** ****** */
-//
-extern double atof (const char *inp) ;
-//
-ATSinline()
-atstype_double
-atspre_g0string2float_double
-  (atstype_string inp) { return atof((char*)inp) ; }
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_float
-atspre_g0float_neg_float (atstype_float f) { return (-f) ; }
-ATSinline()
-atstype_double
-atspre_g0float_neg_double (atstype_double f) { return (-f) ; }
-ATSinline()
-atstype_ldouble
-atspre_g0float_neg_ldouble (atstype_ldouble f) { return (-f) ; }
-
-ATSinline()
-atstype_float
-atspre_g0float_abs_float (atstype_float f) { return (f >= 0 ? f : -f) ; }
-ATSinline()
-atstype_double
-atspre_g0float_abs_double (atstype_double f) { return (f >= 0 ? f : -f) ; }
-ATSinline()
-atstype_ldouble
-atspre_g0float_abs_ldouble (atstype_ldouble f) { return (f >= 0 ? f : -f) ; }
-
-ATSinline()
-atstype_float
-atspre_g0float_succ_float (atstype_float f) { return (f+1) ; }
-ATSinline()
-atstype_double
-atspre_g0float_succ_double (atstype_double f) { return (f+1) ; }
-ATSinline()
-atstype_ldouble
-atspre_g0float_succ_ldouble (atstype_ldouble f) { return (f+1) ; }
-
-ATSinline()
-atstype_float
-atspre_g0float_pred_float (atstype_float f) { return (f-1) ; }
-ATSinline()
-atstype_double
-atspre_g0float_pred_double (atstype_double f) { return (f-1) ; }
-ATSinline()
-atstype_ldouble
-atspre_g0float_pred_ldouble (atstype_ldouble f) { return (f-1) ; }
-
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_float
-atspre_g0float_add_float
-  (atstype_float f1, atstype_float f2) { return (f1 + f2) ; }
-// end of [atspre_g0float_add_float]
-ATSinline()
-atstype_float
-atspre_g0float_sub_float
-  (atstype_float f1, atstype_float f2) { return (f1 - f2) ; }
-// end of [atspre_g0float_sub_float]
-ATSinline()
-atstype_float
-atspre_g0float_mul_float
-  (atstype_float f1, atstype_float f2) { return (f1 * f2) ; }
-// end of [atspre_g0float_mul_float]
-ATSinline()
-atstype_float
-atspre_g0float_div_float
-  (atstype_float f1, atstype_float f2) { return (f1 / f2) ; }
-// end of [atspre_g0float_div_float]
-//
-ATSinline()
-atstype_double
-atspre_g0float_add_double
-  (atstype_double f1, atstype_double f2) { return (f1 + f2) ; }
-// end of [atspre_g0float_add_double]
-ATSinline()
-atstype_double
-atspre_g0float_sub_double
-  (atstype_double f1, atstype_double f2) { return (f1 - f2) ; }
-// end of [atspre_g0float_sub_double]
-ATSinline()
-atstype_double
-atspre_g0float_mul_double
-  (atstype_double f1, atstype_double f2) { return (f1 * f2) ; }
-// end of [atspre_g0float_mul_double]
-ATSinline()
-atstype_double
-atspre_g0float_div_double
-  (atstype_double f1, atstype_double f2) { return (f1 / f2) ; }
-// end of [atspre_g0float_div_double]
-//
-ATSinline()
-atstype_ldouble
-atspre_g0float_add_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 + f2) ; }
-// end of [atspre_g0float_add_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_g0float_sub_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 - f2) ; }
-// end of [atspre_g0float_sub_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_g0float_mul_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 * f2) ; }
-// end of [atspre_g0float_mul_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_g0float_div_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 / f2) ; }
-// end of [atspre_g0float_div_ldouble]
-//
-extern atstype_float fmodf (atstype_float, atstype_float) ;
-extern atstype_double fmod (atstype_double, atstype_double) ;
-extern atstype_ldouble fmodl (atstype_ldouble, atstype_ldouble) ;
-//
-ATSinline()
-atstype_float
-atspre_g0float_mod_float
-  (atstype_float f1, atstype_float f2) { return fmodf(f1, f2) ; }
-ATSinline()
-atstype_double
-atspre_g0float_mod_double
-  (atstype_double f1, atstype_double f2) { return fmod(f1, f2) ; }
-ATSinline()
-atstype_ldouble
-atspre_g0float_mod_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return fmodl(f1, f2) ; }
-//
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_bool
-atspre_g0float_lt_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 < f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lt_float]
-ATSinline()
-atstype_bool
-atspre_g0float_lte_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lte_float]
-ATSinline()
-atstype_bool
-atspre_g0float_gt_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 > f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gt_float]
-ATSinline()
-atstype_bool
-atspre_g0float_gte_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gte_float]
-ATSinline()
-atstype_bool
-atspre_g0float_eq_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 == f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_eq_float]
-ATSinline()
-atstype_bool
-atspre_g0float_neq_float
-  (atstype_float f1, atstype_float f2) {
-  return (f1 != f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_neq_float]
-//
-ATSinline()
-atstype_bool
-atspre_g0float_lt_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 < f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lt_double]
-ATSinline()
-atstype_bool
-atspre_g0float_lte_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lte_double]
-ATSinline()
-atstype_bool
-atspre_g0float_gt_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 > f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gt_double]
-ATSinline()
-atstype_bool
-atspre_g0float_gte_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gte_double]
-ATSinline()
-atstype_bool
-atspre_g0float_eq_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 == f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_eq_double]
-ATSinline()
-atstype_bool
-atspre_g0float_neq_double
-  (atstype_double f1, atstype_double f2) {
-  return (f1 != f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_neq_double]
-//
-ATSinline()
-atstype_bool
-atspre_g0float_lt_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 < f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lt_ldouble]
-ATSinline()
-atstype_bool
-atspre_g0float_lte_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_lte_ldouble]
-ATSinline()
-atstype_bool
-atspre_g0float_gt_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 > f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gt_ldouble]
-ATSinline()
-atstype_bool
-atspre_g0float_gte_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_gte_ldouble]
-ATSinline()
-atstype_bool
-atspre_g0float_eq_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 == f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_eq_ldouble]
-ATSinline()
-atstype_bool
-atspre_g0float_neq_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) {
-  return (f1 != f2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0float_neq_ldouble]
-//
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_g0float_compare_float
-(
-  atstype_float f1, atstype_float f2
-)
-{
-  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
-} // end of [atspre_g0float_compare_float]
-
-ATSinline()
-atstype_int
-atspre_g0float_compare_double
-(
-  atstype_double f1, atstype_double f2
-)
-{
-  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
-} // end of [atspre_g0float_compare_double]
-
-ATSinline()
-atstype_int
-atspre_g0float_compare_ldouble
-(
-  atstype_ldouble f1, atstype_ldouble f2
-)
-{
-  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
-} // end of [atspre_g0float_compare_ldouble]
-
-/* ****** ****** */
-
-ATSinline()
-atstype_float
-atspre_g0float_min_float
-  (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_min_float]
-ATSinline()
-atstype_double
-atspre_g0float_min_double
-  (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_min_double]
-ATSinline()
-atstype_ldouble
-atspre_g0float_min_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_min_ldouble]
-
-ATSinline()
-atstype_float
-atspre_g0float_max_float
-  (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_max_float]
-ATSinline()
-atstype_double
-atspre_g0float_max_double
-  (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_max_double]
-ATSinline()
-atstype_ldouble
-atspre_g0float_max_ldouble
-  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? f1 : f2) ; }
-// end of [atspre_g0float_max_ldouble]
-
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_float
-atspre_add_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) + f2) ; }
-// end of [atspre_add_int_float]
-ATSinline()
-atstype_float
-atspre_sub_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) - f2) ; }
-// end of [atspre_sub_int_float]
-ATSinline()
-atstype_float
-atspre_mul_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) * f2) ; }
-// end of [atspre_mul_int_float]
-ATSinline()
-atstype_float
-atspre_div_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) / f2) ; }
-// end of [atspre_div_int_float]
-//
-ATSinline()
-atstype_double
-atspre_add_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) + f2) ; }
-// end of [atspre_add_int_double]
-ATSinline()
-atstype_double
-atspre_sub_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) - f2) ; }
-// end of [atspre_sub_int_double]
-ATSinline()
-atstype_double
-atspre_mul_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) * f2) ; }
-// end of [atspre_mul_int_double]
-ATSinline()
-atstype_double
-atspre_div_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) / f2) ; }
-// end of [atspre_div_int_double]
-//
-ATSinline()
-atstype_ldouble
-atspre_add_int_ldouble
-  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) + f2) ; }
-// end of [atspre_add_int_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_sub_int_ldouble
-  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) - f2) ; }
-// end of [atspre_sub_int_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_mul_int_ldouble
-  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) * f2) ; }
-// end of [atspre_mul_int_ldouble]
-ATSinline()
-atstype_ldouble
-atspre_div_int_ldouble
-  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) / f2) ; }
-// end of [atspre_div_int_ldouble]
-//
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_float
-atspre_add_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 + ((atstype_float)i2)) ; }
-// end of [atspre_add_float_int]
-ATSinline()
-atstype_float
-atspre_sub_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 - ((atstype_float)i2)) ; }
-// end of [atspre_sub_float_int]
-ATSinline()
-atstype_float
-atspre_mul_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 * ((atstype_float)i2)) ; }
-// end of [atspre_mul_float_int]
-ATSinline()
-atstype_float
-atspre_div_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 / ((atstype_float)i2)) ; }
-// end of [atspre_div_float_int]
-//
-ATSinline()
-atstype_double
-atspre_add_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 + ((atstype_double)i2)) ; }
-// end of [atspre_add_double_int]
-ATSinline()
-atstype_double
-atspre_sub_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 - ((atstype_double)i2)) ; }
-// end of [atspre_sub_double_int]
-ATSinline()
-atstype_double
-atspre_mul_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 * ((atstype_double)i2)) ; }
-// end of [atspre_mul_double_int]
-ATSinline()
-atstype_double
-atspre_div_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 / ((atstype_double)i2)) ; }
-// end of [atspre_div_double_int]
-//
-ATSinline()
-atstype_ldouble
-atspre_add_ldouble_int
-  (atstype_ldouble f1, atstype_int i2) { return (f1 + ((atstype_ldouble)i2)) ; }
-// end of [atspre_add_ldouble_int]
-ATSinline()
-atstype_ldouble
-atspre_sub_ldouble_int
-  (atstype_ldouble f1, atstype_int i2) { return (f1 - ((atstype_ldouble)i2)) ; }
-// end of [atspre_sub_ldouble_int]
-ATSinline()
-atstype_ldouble
-atspre_mul_ldouble_int
-  (atstype_ldouble f1, atstype_int i2) { return (f1 * ((atstype_ldouble)i2)) ; }
-// end of [atspre_mul_ldouble_int]
-ATSinline()
-atstype_ldouble
-atspre_div_ldouble_int
-  (atstype_ldouble f1, atstype_int i2) { return (f1 / ((atstype_ldouble)i2)) ; }
-// end of [atspre_div_ldouble_int]
-//
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_bool
-atspre_lt_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) < f2) ; }
-// end of [atspre_lt_int_float]
-ATSinline()
-atstype_bool
-atspre_lte_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) <= f2) ; }
-// end of [atspre_lte_int_float]
-ATSinline()
-atstype_bool
-atspre_gt_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) > f2) ; }
-// end of [atspre_gt_int_float]
-ATSinline()
-atstype_bool
-atspre_gte_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) >= f2) ; }
-// end of [atspre_gte_int_float]
-ATSinline()
-atstype_bool
-atspre_eq_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) == f2) ; }
-// end of [atspre_eq_int_float]
-ATSinline()
-atstype_bool
-atspre_neq_int_float
-  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) != f2) ; }
-// end of [atspre_neq_int_float]
-//
-ATSinline()
-atstype_bool
-atspre_lt_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) < f2) ; }
-// end of [atspre_lt_int_double]
-ATSinline()
-atstype_bool
-atspre_lte_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) <= f2) ; }
-// end of [atspre_lte_int_double]
-ATSinline()
-atstype_bool
-atspre_gt_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) > f2) ; }
-// end of [atspre_gt_int_double]
-ATSinline()
-atstype_bool
-atspre_gte_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) >= f2) ; }
-// end of [atspre_gte_int_double]
-ATSinline()
-atstype_bool
-atspre_eq_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) == f2) ; }
-// end of [atspre_eq_int_double]
-ATSinline()
-atstype_bool
-atspre_neq_int_double
-  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) != f2) ; }
-// end of [atspre_neq_int_double]
-//
-/* ****** ****** */
-//
-//
-ATSinline()
-atstype_bool
-atspre_lt_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 < ((atstype_float)i2)) ; }
-// end of [atspre_lt_float_int]
-ATSinline()
-atstype_bool
-atspre_lte_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 <= ((atstype_float)i2)) ; }
-// end of [atspre_lte_float_int]
-ATSinline()
-atstype_bool
-atspre_gt_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 > ((atstype_float)i2)) ; }
-// end of [atspre_gt_float_int]
-ATSinline()
-atstype_bool
-atspre_gte_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 >= ((atstype_float)i2)) ; }
-// end of [atspre_gte_float_int]
-ATSinline()
-atstype_bool
-atspre_eq_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 == ((atstype_float)i2)) ; }
-// end of [atspre_eq_float_int]
-ATSinline()
-atstype_bool
-atspre_neq_float_int
-  (atstype_float f1, atstype_int i2) { return (f1 != ((atstype_float)i2)) ; }
-// end of [atspre_neq_float_int]
-//
-ATSinline()
-atstype_bool
-atspre_lt_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 < ((atstype_double)i2)) ; }
-// end of [atspre_lt_double_int]
-ATSinline()
-atstype_bool
-atspre_lte_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 <= ((atstype_double)i2)) ; }
-// end of [atspre_lte_double_int]
-ATSinline()
-atstype_bool
-atspre_gt_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 > ((atstype_double)i2)) ; }
-// end of [atspre_gt_double_int]
-ATSinline()
-atstype_bool
-atspre_gte_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 >= ((atstype_double)i2)) ; }
-// end of [atspre_gte_double_int]
-ATSinline()
-atstype_bool
-atspre_eq_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 == ((atstype_double)i2)) ; }
-// end of [atspre_eq_double_int]
-ATSinline()
-atstype_bool
-atspre_neq_double_int
-  (atstype_double f1, atstype_int i2) { return (f1 != ((atstype_double)i2)) ; }
-// end of [atspre_neq_double_int]
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_FLOAT
-
-/* ****** ****** */
-
-/* end of [float.cats] */
-
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/fprintf.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/fprintf.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/fprintf.cats
+++ /dev/null
@@ -1,580 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/fprintf.atxt
-** Time of generation: Mon Jun  4 01:42:54 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: September, 2015 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_FPRINTF
-#define ATSLIB_PRELUDE_CATS_FPRINTF
-
-/* ****** ****** */
-//
-// HX-2013-09: declared in [stdio.h]
-//
-#ifndef fprintf
-extern
-int fprintf (FILE *stream, const char *format, ...) ;
-#endif // end of [ifndef]
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_bool (
-  atstype_ref out, atstype_bool x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%s", atspre_bool2string(x)) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_bool] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_bool]
-#define atspre_print_bool(x) atspre_fprint_bool(stdout, (x))
-#define atspre_prerr_bool(x) atspre_fprint_bool(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_char
-(
-  atstype_ref out, atstype_char c
-) {
-  int err = 0 ;
-  err += fprintf ((FILE*)out, "%c", c) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_char] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end of [atspre_fprint_char]
-#define atspre_print_char(c) atspre_fprint_char(stdout, (c))
-#define atspre_prerr_char(c) atspre_fprint_char(stderr, (c))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uchar
-(
-  atstype_ref out, atstype_uchar c
-) {
-  atspre_fprint_char (out, (atstype_char)c) ; return ;
-} // end of [atspre_fprint_uchar]
-#define atspre_print_uchar(c) atspre_fprint_uchar(stdout, (c))
-#define atspre_prerr_uchar(c) atspre_fprint_uchar(stderr, (c))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_schar
-(
-  atstype_ref out, atstype_schar c
-) {
-  atspre_fprint_char (out, (atstype_char)c) ; return ;
-} // end of [atspre_fprint_schar]
-#define atspre_print_schar(c) atspre_fprint_schar(stdout, (c))
-#define atspre_prerr_schar(c) atspre_fprint_schar(stderr, (c))
-
-/* ****** ****** */
-  
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_int
-(
-  atstype_ref out, atstype_int x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%i", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_int] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_int]
-#define atspre_print_int(x) atspre_fprint_int(stdout, (x))
-#define atspre_prerr_int(x) atspre_fprint_int(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_lint
-(
-  atstype_ref out, atstype_lint x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%li", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_lint] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_lint]
-#define atspre_print_lint(x) atspre_fprint_lint(stdout, (x))
-#define atspre_prerr_lint(x) atspre_fprint_lint(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_llint
-(
-  atstype_ref out, atstype_llint x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%lli", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_llint] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_llint]
-#define atspre_print_llint(x) atspre_fprint_llint(stdout, (x))
-#define atspre_prerr_llint(x) atspre_fprint_llint(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_ssize
-(
-  atstype_ref out, atstype_ssize x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%li", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_ssize] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_ssize]
-#define atspre_print_ssize(x) atspre_fprint_ssize(stdout, (x))
-#define atspre_prerr_ssize(x) atspre_fprint_ssize(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uint
-(
-  atstype_ref out, atstype_uint x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%u", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_uint] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_uint]
-#define atspre_print_uint(x) atspre_fprint_uint(stdout, (x))
-#define atspre_prerr_uint(x) atspre_fprint_uint(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_ulint
-(
-  atstype_ref out, atstype_ulint x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%lu", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_ulint] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_ulint]
-#define atspre_print_ulint(x) atspre_fprint_ulint(stdout, (x))
-#define atspre_prerr_ulint(x) atspre_fprint_ulint(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_ullint
-(
-  atstype_ref out, atstype_ullint x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%llu", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_ullint] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_ullint]
-#define atspre_print_ullint(x) atspre_fprint_ullint(stdout, (x))
-#define atspre_prerr_ullint(x) atspre_fprint_ullint(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_size
-(
-  atstype_ref out, atstype_size x
-) {
-  int err = 0 ;
-  atstype_ulint x2 = x ;
-  err += fprintf((FILE*)out, "%lu", x2) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_size] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_size]
-#define atspre_print_size(x) atspre_fprint_size(stdout, (x))
-#define atspre_prerr_size(x) atspre_fprint_size(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_ptr (
-  atstype_ref out, atstype_ptr x
-) {
-  int err ;
-  err = fprintf((FILE*)out, "%p", x) ;
-  return ;
-} // end [atspre_fprint_ptr]
-#define atspre_print_ptr(x) atspre_fprint_ptr(stdout, (x))
-#define atspre_prerr_ptr(x) atspre_fprint_ptr(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_float (
-  atstype_ref r, atstype_float x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)r, "%f", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_float] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_float]
-#define atspre_print_float(x) atspre_fprint_float(stdout, (x))
-#define atspre_prerr_float(x) atspre_fprint_float(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_double (
-  atstype_ref r, atstype_double x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)r, "%f", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_double] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_double]
-#define atspre_print_double(x) atspre_fprint_double(stdout, (x))
-#define atspre_prerr_double(x) atspre_fprint_double(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_ldouble (
-  atstype_ref r, atstype_ldouble x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)r, "%Lf", x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_ldouble] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end [atspre_fprint_ldouble]
-#define atspre_print_ldouble(x) atspre_fprint_ldouble(stdout, (x))
-#define atspre_prerr_ldouble(x) atspre_fprint_ldouble(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_intptr
-(
-  atstype_ref r, atstype_intptr x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ;
-  return ;
-} // end [atspre_fprint_intptr]
-#define atspre_print_intptr(x) atspre_fprint_intptr(stdout, (x))
-#define atspre_prerr_intptr(x) atspre_fprint_intptr(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uintptr
-(
-  atstype_ref r, atstype_uintptr x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ;
-  return ;
-} // end [atspre_fprint_uintptr]
-#define atspre_print_uintptr(x) atspre_fprint_uintptr(stdout, (x))
-#define atspre_prerr_uintptr(x) atspre_fprint_uintptr(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_int8
-(
-  atstype_ref r, atstype_int8 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%i", (atstype_int)x) ;
-  return ;
-} // end [atspre_fprint_int8]
-#define atspre_print_int8(x) atspre_fprint_int8(stdout, (x))
-#define atspre_prerr_int8(x) atspre_fprint_int8(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_int16
-(
-  atstype_ref r, atstype_int16 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%i", (atstype_int)x) ;
-  return ;
-} // end [atspre_fprint_int16]
-#define atspre_print_int16(x) atspre_fprint_int16(stdout, (x))
-#define atspre_prerr_int16(x) atspre_fprint_int16(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_int32
-(
-  atstype_ref r, atstype_int32 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%li", (atstype_lint)x) ;
-  return ;
-} // end [atspre_fprint_int32]
-#define atspre_print_int32(x) atspre_fprint_int32(stdout, (x))
-#define atspre_prerr_int32(x) atspre_fprint_int32(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_int64
-(
-  atstype_ref r, atstype_int64 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ;
-  return ;
-} // end [atspre_fprint_int64]
-#define atspre_print_int64(x) atspre_fprint_int64(stdout, (x))
-#define atspre_prerr_int64(x) atspre_fprint_int64(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uint8
-(
-  atstype_ref r, atstype_uint8 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%u", (atstype_uint)x) ;
-  return ;
-} // end [atspre_fprint_uint8]
-#define atspre_print_uint8(x) atspre_fprint_uint8(stdout, (x))
-#define atspre_prerr_uint8(x) atspre_fprint_uint8(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uint16
-(
-  atstype_ref r, atstype_uint16 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%u", (atstype_uint)x) ;
-  return ;
-} // end [atspre_fprint_uint16]
-#define atspre_print_uint16(x) atspre_fprint_uint16(stdout, (x))
-#define atspre_prerr_uint16(x) atspre_fprint_uint16(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uint32
-(
-  atstype_ref r, atstype_uint32 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%lu", (atstype_ulint)x) ;
-  return ;
-} // end [atspre_fprint_uint32]
-#define atspre_print_uint32(x) atspre_fprint_uint32(stdout, (x))
-#define atspre_prerr_uint32(x) atspre_fprint_uint32(stderr, (x))
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_uint64
-(
-  atstype_ref r, atstype_uint64 x
-) {
-  int err ;
-  err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ;
-  return ;
-} // end [atspre_fprint_uint64]
-#define atspre_print_uint64(x) atspre_fprint_uint64(stdout, (x))
-#define atspre_prerr_uint64(x) atspre_fprint_uint64(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_string
-(
-  atstype_ref out, atstype_string x
-) {
-  int err = 0 ;
-  err += fprintf((FILE*)out, "%s", (char*)x) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_string] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end of [atspre_fprint_string]
-#define atspre_print_string(x) atspre_fprint_string(stdout, (x))
-#define atspre_prerr_string(x) atspre_fprint_string(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_substring
-(
-  atstype_ref out
-, atstype_string x
-, atstype_size st, atstype_size ln  
-) {
-  int err = 0 ;
-  err += fwrite(((char*)x)+st, 1, ln, out) ;
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_substring] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end of [atspre_fprint_substring]
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_stropt
-(
-  atstype_ref out, atstype_stropt x
-) {
-  int err = 0 ;
-  if (!x)
-  {
-    err += fprintf((FILE*)out, "strnone()") ;
-  } else {
-    err += fprintf((FILE*)out, "strsome(%s)", (char*)x) ;
-  }
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_stropt] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end of [atspre_fprint_stropt]
-#define atspre_print_stropt(x) atspre_fprint_stropt(stdout, (x))
-#define atspre_prerr_stropt(x) atspre_fprint_stropt(stderr, (x))
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_fprint_strptr
-(
-  atstype_ref out, atstype_strptr x
-) {
-  int err = 0 ;
-  if (x != 0) {
-    err += fprintf((FILE*)out, "%s", (char*)x) ;
-  } else {
-    err += fprintf((FILE*)out, "%s", "(strnull)") ;
-  } // end of [if]
-/*
-  if (err < 0) {
-    fprintf(stderr, "exit(ATS): [fprint_strptr] failed.") ; exit(1) ;
-  } // end of [if]
-*/
-  return ;
-} // end of [atspre_fprint_strptr]
-#define atspre_print_strptr(x) atspre_fprint_strptr(stdout, (x))
-#define atspre_prerr_strptr(x) atspre_fprint_strptr(stderr, (x))
-
-/* ****** ****** */
-
-#define atspre_fprint_strbuf atspre_fprint_strptr
-#define atspre_print_strbuf(x) atspre_fprint_strbuf(stdout, (x))
-#define atspre_prerr_strbuf(x) atspre_fprint_strbuf(stderr, (x))
-
-/* ****** ****** */
-
-#define atspre_fprint_strnptr atspre_fprint_strptr
-#define atspre_print_strnptr(x) atspre_fprint_strbuf(stdout, (x))
-#define atspre_prerr_strnptr(x) atspre_fprint_strbuf(stderr, (x))
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_FPRINTF
-
-/* ****** ****** */
-
-/* end of [fprintf.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer.cats
+++ /dev/null
@@ -1,1275 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer.atxt
-** Time of generation: Mon Jun  4 01:42:52 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER
-#define ATSLIB_PRELUDE_CATS_INTEGER
-
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_int_int(x) ((atstype_int)(x))
-#define \
-atspre_g1int2int_int_int(x) atspre_g0int2int_int_int(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_int_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g1int2uint_int_uint(x) atspre_g0int2uint_int_uint(x)
-//
-/* ****** ****** */
-//
-#define atspre_g0uint2int_uint_int(x) ((atstype_int)(x))
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0uint2uint_uint_uint(x) (x)
-#define \
-atspre_g1uint2uint_uint_uint(x) atspre_g0uint2uint_uint_uint(x)
-//
-/* ****** ****** */
-//
-#define atspre_g0uint2uint_ulint_uint(x) ((atstype_uint)(x))
-#define atspre_g0uint2uint_ulint_ulint(x) (x)
-#define atspre_g0uint2uint_ulint_ullint(x) ((atstype_ullint)(x))
-#define atspre_g1uint2uint_ulint_uint atspre_g0uint2uint_ulint_uint
-#define atspre_g1uint2uint_ulint_ulint atspre_g0uint2uint_ulint_ulint
-#define atspre_g1uint2uint_ulint_ullint atspre_g0uint2uint_ulint_ullint
-//
-/* ****** ****** */
-//
-#define atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x))
-//
-/* ****** ****** */
-//
-extern int atoi (const char *inp) ;
-extern long int atol (const char *inp) ;
-extern long long int atoll (const char *inp) ;
-//
-ATSinline()
-atstype_int
-atspre_g0string2int_int
-  (atstype_string inp) { return atoi((char*)inp) ; }
-ATSinline()
-atstype_lint
-atspre_g0string2int_lint
-  (atstype_string inp) { return atol((char*)inp) ; }
-ATSinline()
-atstype_llint
-atspre_g0string2int_llint
-  (atstype_string inp) { return atoll((char*)inp) ; }
-//
-/* ****** ****** */
-//
-extern
-unsigned long int
-strtoul(const char *nptr, char **endptr, int base);
-extern
-unsigned long long int
-strtoull(const char *nptr, char **endptr, int base);
-//
-ATSinline()
-atstype_uint
-atspre_g0string2uint_uint
-  (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; }
-ATSinline()
-atstype_ulint
-atspre_g0string2uint_ulint
-  (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; }
-ATSinline()
-atstype_ullint
-atspre_g0string2uint_ullint
-  (atstype_string inp) { return strtoull((char*)inp, NULL, 10) ; }
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_int
-atspre_g0int_neg_int
-  (atstype_int x) { return (-x) ; }
-// end of [atspre_g0int_neg_int]
-ATSinline()
-atstype_int
-atspre_g0int_abs_int
-  (atstype_int x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_int]
-ATSinline()
-atstype_int
-atspre_g0int_succ_int
-  (atstype_int x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_int]
-ATSinline()
-atstype_int
-atspre_g0int_pred_int
-  (atstype_int x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_int]
-ATSinline()
-atstype_int
-atspre_g0int_half_int
-  (atstype_int x) { return (x / 2) ; }
-// end of [atspre_g0int_half_int]
-ATSinline()
-atstype_int
-atspre_g0int_add_int
-  (atstype_int x1, atstype_int x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_int]
-ATSinline()
-atstype_int
-atspre_g0int_sub_int
-  (atstype_int x1, atstype_int x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_int]
-ATSinline()
-atstype_int
-atspre_g0int_mul_int
-  (atstype_int x1, atstype_int x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_int]
-ATSinline()
-atstype_int
-atspre_g0int_div_int
-  (atstype_int x1, atstype_int x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_int]
-ATSinline()
-atstype_int
-atspre_g0int_mod_int
-  (atstype_int x1, atstype_int x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_int]
-ATSinline()
-atstype_int
-atspre_g0int_nmod_int
-  (atstype_int x1, atstype_int x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_int]
-ATSinline()
-atstype_int
-atspre_g0int_asl_int
-  (atstype_int x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_int]
-ATSinline()
-atstype_int
-atspre_g0int_asr_int
-  (atstype_int x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_int]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_int]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_int]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_int]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_int]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_int]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_int]
-ATSinline()
-atstype_int
-atspre_g0int_compare_int
-(
-  atstype_int x1, atstype_int x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_int]
-ATSinline()
-atstype_int
-atspre_g0int_max_int
-  (atstype_int x1, atstype_int x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_int]
-ATSinline()
-atstype_int
-atspre_g0int_min_int
-  (atstype_int x1, atstype_int x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_int]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_int (atstype_int x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_int]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_int (atstype_int x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_int]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_int (atstype_int x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_int]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_int (atstype_int x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_int]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_int (atstype_int x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_int]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_int (atstype_int x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_int]
-//
-ATSinline()
-atstype_lint
-atspre_g0int_neg_lint
-  (atstype_lint x) { return (-x) ; }
-// end of [atspre_g0int_neg_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_abs_lint
-  (atstype_lint x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_succ_lint
-  (atstype_lint x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_pred_lint
-  (atstype_lint x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_half_lint
-  (atstype_lint x) { return (x / 2) ; }
-// end of [atspre_g0int_half_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_add_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_sub_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_mul_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_div_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_mod_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_nmod_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_asl_lint
-  (atstype_lint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_asr_lint
-  (atstype_lint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_lint]
-ATSinline()
-atstype_int
-atspre_g0int_compare_lint
-(
-  atstype_lint x1, atstype_lint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_max_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_lint]
-ATSinline()
-atstype_lint
-atspre_g0int_min_lint
-  (atstype_lint x1, atstype_lint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_lint (atstype_lint x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_lint (atstype_lint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_lint (atstype_lint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_lint (atstype_lint x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_lint (atstype_lint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_lint]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_lint (atstype_lint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_lint]
-//
-ATSinline()
-atstype_llint
-atspre_g0int_neg_llint
-  (atstype_llint x) { return (-x) ; }
-// end of [atspre_g0int_neg_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_abs_llint
-  (atstype_llint x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_succ_llint
-  (atstype_llint x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_pred_llint
-  (atstype_llint x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_half_llint
-  (atstype_llint x) { return (x / 2) ; }
-// end of [atspre_g0int_half_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_add_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_sub_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_mul_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_div_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_mod_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_nmod_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_asl_llint
-  (atstype_llint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_asr_llint
-  (atstype_llint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_llint]
-ATSinline()
-atstype_int
-atspre_g0int_compare_llint
-(
-  atstype_llint x1, atstype_llint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_max_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_llint]
-ATSinline()
-atstype_llint
-atspre_g0int_min_llint
-  (atstype_llint x1, atstype_llint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_llint (atstype_llint x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_llint (atstype_llint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_llint (atstype_llint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_llint (atstype_llint x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_llint (atstype_llint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_llint]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_llint (atstype_llint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_llint]
-//
-/* ****** ****** */
-
-#define atspre_g1int_neg_int atspre_g0int_neg_int
-#define atspre_g1int_abs_int atspre_g0int_abs_int
-#define atspre_g1int_succ_int atspre_g0int_succ_int
-#define atspre_g1int_pred_int atspre_g0int_pred_int
-#define atspre_g1int_half_int atspre_g0int_half_int
-#define atspre_g1int_add_int atspre_g0int_add_int
-#define atspre_g1int_sub_int atspre_g0int_sub_int
-#define atspre_g1int_mul_int atspre_g0int_mul_int
-#define atspre_g1int_div_int atspre_g0int_div_int
-#define atspre_g1int_nmod_int atspre_g0int_nmod_int
-#define atspre_g1int_isltz_int atspre_g0int_isltz_int
-#define atspre_g1int_isltez_int atspre_g0int_isltez_int
-#define atspre_g1int_isgtz_int atspre_g0int_isgtz_int
-#define atspre_g1int_isgtez_int atspre_g0int_isgtez_int
-#define atspre_g1int_iseqz_int atspre_g0int_iseqz_int
-#define atspre_g1int_isneqz_int atspre_g0int_isneqz_int
-#define atspre_g1int_lt_int atspre_g0int_lt_int
-#define atspre_g1int_lte_int atspre_g0int_lte_int
-#define atspre_g1int_gt_int atspre_g0int_gt_int
-#define atspre_g1int_gte_int atspre_g0int_gte_int
-#define atspre_g1int_eq_int atspre_g0int_eq_int
-#define atspre_g1int_neq_int atspre_g0int_neq_int
-#define atspre_g1int_compare_int atspre_g0int_compare_int
-#define atspre_g1int_max_int atspre_g0int_max_int
-#define atspre_g1int_min_int atspre_g0int_min_int
-
-/* ****** ****** */
-
-#define atspre_g1int_neg_lint atspre_g0int_neg_lint
-#define atspre_g1int_succ_lint atspre_g0int_succ_lint
-#define atspre_g1int_pred_lint atspre_g0int_pred_lint
-#define atspre_g1int_half_lint atspre_g0int_half_lint
-#define atspre_g1int_add_lint atspre_g0int_add_lint
-#define atspre_g1int_sub_lint atspre_g0int_sub_lint
-#define atspre_g1int_mul_lint atspre_g0int_mul_lint
-#define atspre_g1int_div_lint atspre_g0int_div_lint
-#define atspre_g1int_nmod_lint atspre_g0int_nmod_lint
-#define atspre_g1int_isltz_lint atspre_g0int_isltz_lint
-#define atspre_g1int_isltez_lint atspre_g0int_isltez_lint
-#define atspre_g1int_isgtz_lint atspre_g0int_isgtz_lint
-#define atspre_g1int_isgtez_lint atspre_g0int_isgtez_lint
-#define atspre_g1int_iseqz_lint atspre_g0int_iseqz_lint
-#define atspre_g1int_isneqz_lint atspre_g0int_isneqz_lint
-#define atspre_g1int_lt_lint atspre_g0int_lt_lint
-#define atspre_g1int_lte_lint atspre_g0int_lte_lint
-#define atspre_g1int_gt_lint atspre_g0int_gt_lint
-#define atspre_g1int_gte_lint atspre_g0int_gte_lint
-#define atspre_g1int_eq_lint atspre_g0int_eq_lint
-#define atspre_g1int_neq_lint atspre_g0int_neq_lint
-#define atspre_g1int_compare_lint atspre_g0int_compare_lint
-#define atspre_g1int_max_lint atspre_g0int_max_lint
-#define atspre_g1int_min_lint atspre_g0int_min_lint
-
-/* ****** ****** */
-
-#define atspre_g1int_neg_llint atspre_g0int_neg_llint
-#define atspre_g1int_succ_llint atspre_g0int_succ_llint
-#define atspre_g1int_pred_llint atspre_g0int_pred_llint
-#define atspre_g1int_half_llint atspre_g0int_half_llint
-#define atspre_g1int_add_llint atspre_g0int_add_llint
-#define atspre_g1int_sub_llint atspre_g0int_sub_llint
-#define atspre_g1int_mul_llint atspre_g0int_mul_llint
-#define atspre_g1int_div_llint atspre_g0int_div_llint
-#define atspre_g1int_nmod_llint atspre_g0int_nmod_llint
-#define atspre_g1int_isltz_llint atspre_g0int_isltz_llint
-#define atspre_g1int_isltez_llint atspre_g0int_isltez_llint
-#define atspre_g1int_isgtz_llint atspre_g0int_isgtz_llint
-#define atspre_g1int_isgtez_llint atspre_g0int_isgtez_llint
-#define atspre_g1int_iseqz_llint atspre_g0int_iseqz_llint
-#define atspre_g1int_isneqz_llint atspre_g0int_isneqz_llint
-#define atspre_g1int_lt_llint atspre_g0int_lt_llint
-#define atspre_g1int_lte_llint atspre_g0int_lte_llint
-#define atspre_g1int_gt_llint atspre_g0int_gt_llint
-#define atspre_g1int_gte_llint atspre_g0int_gte_llint
-#define atspre_g1int_eq_llint atspre_g0int_eq_llint
-#define atspre_g1int_neq_llint atspre_g0int_neq_llint
-#define atspre_g1int_compare_llint atspre_g0int_compare_llint
-#define atspre_g1int_max_llint atspre_g0int_max_llint
-#define atspre_g1int_min_llint atspre_g0int_min_llint
-
-/* ****** ****** */
-//
-ATSinline()
-atstype_uint
-atspre_g0uint_succ_uint
-  (atstype_uint x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_pred_uint
-  (atstype_uint x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_half_uint
-  (atstype_uint x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_add_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_sub_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_mul_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_div_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_mod_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_lsl_uint
-  (atstype_uint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_lsr_uint
-  (atstype_uint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_lnot_uint
-  (atstype_uint x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_lor_uint
-  (atstype_uint x, atstype_uint y) { return (x | y) ; }
-// end of [atspre_g0uint_uint_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_land_uint
-  (atstype_uint x, atstype_uint y) { return (x & y) ; }
-// end of [atspre_g0uint_uint_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_lxor_uint
-  (atstype_uint x, atstype_uint y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uint_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uint]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uint
-(
-  atstype_uint x1, atstype_uint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_max_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uint]
-ATSinline()
-atstype_uint
-atspre_g0uint_min_uint
-  (atstype_uint x1, atstype_uint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uint (atstype_uint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uint (atstype_uint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uint (atstype_uint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uint (atstype_uint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uint]
-//
-ATSinline()
-atstype_ulint
-atspre_g0uint_succ_ulint
-  (atstype_ulint x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_pred_ulint
-  (atstype_ulint x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_half_ulint
-  (atstype_ulint x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_add_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_sub_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_mul_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_div_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_mod_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_lsl_ulint
-  (atstype_ulint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_lsr_ulint
-  (atstype_ulint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_lnot_ulint
-  (atstype_ulint x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_lor_ulint
-  (atstype_ulint x, atstype_ulint y) { return (x | y) ; }
-// end of [atspre_g0uint_ulint_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_land_ulint
-  (atstype_ulint x, atstype_ulint y) { return (x & y) ; }
-// end of [atspre_g0uint_ulint_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_lxor_ulint
-  (atstype_ulint x, atstype_ulint y) { return (x ^ y) ; }
-// end of [atspre_g0uint_ulint_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_ulint]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_ulint
-(
-  atstype_ulint x1, atstype_ulint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_max_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_ulint]
-ATSinline()
-atstype_ulint
-atspre_g0uint_min_ulint
-  (atstype_ulint x1, atstype_ulint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_ulint (atstype_ulint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_ulint (atstype_ulint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_ulint (atstype_ulint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_ulint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_ulint (atstype_ulint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_ulint]
-//
-ATSinline()
-atstype_ullint
-atspre_g0uint_succ_ullint
-  (atstype_ullint x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_pred_ullint
-  (atstype_ullint x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_half_ullint
-  (atstype_ullint x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_add_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_sub_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_mul_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_div_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_mod_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_lsl_ullint
-  (atstype_ullint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_lsr_ullint
-  (atstype_ullint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_lnot_ullint
-  (atstype_ullint x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_lor_ullint
-  (atstype_ullint x, atstype_ullint y) { return (x | y) ; }
-// end of [atspre_g0uint_ullint_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_land_ullint
-  (atstype_ullint x, atstype_ullint y) { return (x & y) ; }
-// end of [atspre_g0uint_ullint_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_lxor_ullint
-  (atstype_ullint x, atstype_ullint y) { return (x ^ y) ; }
-// end of [atspre_g0uint_ullint_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_ullint]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_ullint
-(
-  atstype_ullint x1, atstype_ullint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_max_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_ullint]
-ATSinline()
-atstype_ullint
-atspre_g0uint_min_ullint
-  (atstype_ullint x1, atstype_ullint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_ullint (atstype_ullint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_ullint (atstype_ullint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_ullint (atstype_ullint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_ullint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_ullint (atstype_ullint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_ullint]
-//
-/* ****** ****** */
-
-#define atspre_g1uint_succ_uint atspre_g0uint_succ_uint
-#define atspre_g1uint_pred_uint atspre_g0uint_pred_uint
-#define atspre_g1uint_half_uint atspre_g0uint_half_uint
-#define atspre_g1uint_add_uint atspre_g0uint_add_uint
-#define atspre_g1uint_sub_uint atspre_g0uint_sub_uint
-#define atspre_g1uint_mul_uint atspre_g0uint_mul_uint
-#define atspre_g1uint_div_uint atspre_g0uint_div_uint
-#define atspre_g1uint_mod_uint atspre_g0uint_mod_uint
-#define atspre_g1uint_isgtz_uint atspre_g0uint_isgtz_uint
-#define atspre_g1uint_iseqz_uint atspre_g0uint_iseqz_uint
-#define atspre_g1uint_isneqz_uint atspre_g0uint_isneqz_uint
-#define atspre_g1uint_lt_uint atspre_g0uint_lt_uint
-#define atspre_g1uint_lte_uint atspre_g0uint_lte_uint
-#define atspre_g1uint_gt_uint atspre_g0uint_gt_uint
-#define atspre_g1uint_gte_uint atspre_g0uint_gte_uint
-#define atspre_g1uint_eq_uint atspre_g0uint_eq_uint
-#define atspre_g1uint_neq_uint atspre_g0uint_neq_uint
-#define atspre_g1uint_compare_uint atspre_g0uint_compare_uint
-#define atspre_g1uint_max_uint atspre_g0uint_max_uint
-#define atspre_g1uint_min_uint atspre_g0uint_min_uint
-
-/* ****** ****** */
-
-#define atspre_g1uint_succ_ulint atspre_g0uint_succ_ulint
-#define atspre_g1uint_pred_ulint atspre_g0uint_pred_ulint
-#define atspre_g1uint_half_ulint atspre_g0uint_half_ulint
-#define atspre_g1uint_add_ulint atspre_g0uint_add_ulint
-#define atspre_g1uint_sub_ulint atspre_g0uint_sub_ulint
-#define atspre_g1uint_mul_ulint atspre_g0uint_mul_ulint
-#define atspre_g1uint_div_ulint atspre_g0uint_div_ulint
-#define atspre_g1uint_mod_ulint atspre_g0uint_mod_ulint
-#define atspre_g1uint_isgtz_ulint atspre_g0uint_isgtz_ulint
-#define atspre_g1uint_iseqz_ulint atspre_g0uint_iseqz_ulint
-#define atspre_g1uint_isneqz_ulint atspre_g0uint_isneqz_ulint
-#define atspre_g1uint_lt_ulint atspre_g0uint_lt_ulint
-#define atspre_g1uint_lte_ulint atspre_g0uint_lte_ulint
-#define atspre_g1uint_gt_ulint atspre_g0uint_gt_ulint
-#define atspre_g1uint_gte_ulint atspre_g0uint_gte_ulint
-#define atspre_g1uint_eq_ulint atspre_g0uint_eq_ulint
-#define atspre_g1uint_neq_ulint atspre_g0uint_neq_ulint
-#define atspre_g1uint_compare_ulint atspre_g0uint_compare_ulint
-#define atspre_g1uint_max_ulint atspre_g0uint_max_ulint
-#define atspre_g1uint_min_ulint atspre_g0uint_min_ulint
-
-/* ****** ****** */
-
-#define atspre_g1uint_succ_ullint atspre_g0uint_succ_ullint
-#define atspre_g1uint_pred_ullint atspre_g0uint_pred_ullint
-#define atspre_g1uint_half_ullint atspre_g0uint_half_ullint
-#define atspre_g1uint_add_ullint atspre_g0uint_add_ullint
-#define atspre_g1uint_sub_ullint atspre_g0uint_sub_ullint
-#define atspre_g1uint_mul_ullint atspre_g0uint_mul_ullint
-#define atspre_g1uint_div_ullint atspre_g0uint_div_ullint
-#define atspre_g1uint_mod_ullint atspre_g0uint_mod_ullint
-#define atspre_g1uint_isgtz_ullint atspre_g0uint_isgtz_ullint
-#define atspre_g1uint_iseqz_ullint atspre_g0uint_iseqz_ullint
-#define atspre_g1uint_isneqz_ullint atspre_g0uint_isneqz_ullint
-#define atspre_g1uint_lt_ullint atspre_g0uint_lt_ullint
-#define atspre_g1uint_lte_ullint atspre_g0uint_lte_ullint
-#define atspre_g1uint_gt_ullint atspre_g0uint_gt_ullint
-#define atspre_g1uint_gte_ullint atspre_g0uint_gte_ullint
-#define atspre_g1uint_eq_ullint atspre_g0uint_eq_ullint
-#define atspre_g1uint_neq_ullint atspre_g0uint_neq_ullint
-#define atspre_g1uint_compare_ullint atspre_g0uint_compare_ullint
-#define atspre_g1uint_max_ullint atspre_g0uint_max_ullint
-#define atspre_g1uint_min_ullint atspre_g0uint_min_ullint
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER
-
-/* ****** ****** */
-
-/* end of [integer.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_fixed.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_fixed.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_fixed.cats
+++ /dev/null
@@ -1,1425 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer_fixed.atxt
-** Time of generation: Mon Jun  4 01:42:54 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED
-#define ATSLIB_PRELUDE_CATS_INTEGER_FIXED
-
-/* ****** ****** */
-
-#include <stdint.h>
-
-/* ****** ****** */
-
-typedef int8_t atstype_int8 ;
-typedef int16_t atstype_int16 ;
-typedef int32_t atstype_int32 ;
-typedef int64_t atstype_int64 ;
-
-typedef uint8_t atstype_uint8 ;
-typedef uint16_t atstype_uint16 ;
-typedef uint32_t atstype_uint32 ;
-typedef uint64_t atstype_uint64 ;
-
-/* ****** ****** */
-
-#define \
-atspre_g0int2int_int8_int(x) ((atstype_int)(x))
-#define \
-atspre_g0int2int_int16_int(x) ((atstype_int)(x))
-#define \
-atspre_g0int2int_int32_int(x) ((atstype_int)(x))
-#define \
-atspre_g0int2int_int64_int(x) ((atstype_int)(x))
-
-/* ****** ****** */
-//
-ATSinline()
-atstype_int8
-atspre_g0int_neg_int8
-  (atstype_int8 x) { return (-x) ; }
-// end of [atspre_g0int_neg_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_abs_int8
-  (atstype_int8 x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_succ_int8
-  (atstype_int8 x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_pred_int8
-  (atstype_int8 x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_half_int8
-  (atstype_int8 x) { return (x / 2) ; }
-// end of [atspre_g0int_half_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_add_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_sub_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_mul_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_div_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_mod_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_nmod_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_asl_int8
-  (atstype_int8 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_asr_int8
-  (atstype_int8 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_int8]
-ATSinline()
-atstype_int
-atspre_g0int_compare_int8
-(
-  atstype_int8 x1, atstype_int8 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_max_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_int8]
-ATSinline()
-atstype_int8
-atspre_g0int_min_int8
-  (atstype_int8 x1, atstype_int8 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_int8 (atstype_int8 x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_int8 (atstype_int8 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_int8 (atstype_int8 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_int8 (atstype_int8 x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_int8 (atstype_int8 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_int8]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_int8 (atstype_int8 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_int8]
-ATSinline()
-atstype_int16
-atspre_g0int_neg_int16
-  (atstype_int16 x) { return (-x) ; }
-// end of [atspre_g0int_neg_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_abs_int16
-  (atstype_int16 x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_succ_int16
-  (atstype_int16 x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_pred_int16
-  (atstype_int16 x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_half_int16
-  (atstype_int16 x) { return (x / 2) ; }
-// end of [atspre_g0int_half_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_add_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_sub_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_mul_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_div_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_mod_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_nmod_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_asl_int16
-  (atstype_int16 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_asr_int16
-  (atstype_int16 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_int16]
-ATSinline()
-atstype_int
-atspre_g0int_compare_int16
-(
-  atstype_int16 x1, atstype_int16 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_max_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_int16]
-ATSinline()
-atstype_int16
-atspre_g0int_min_int16
-  (atstype_int16 x1, atstype_int16 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_int16 (atstype_int16 x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_int16 (atstype_int16 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_int16 (atstype_int16 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_int16 (atstype_int16 x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_int16 (atstype_int16 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_int16]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_int16 (atstype_int16 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_int16]
-ATSinline()
-atstype_int32
-atspre_g0int_neg_int32
-  (atstype_int32 x) { return (-x) ; }
-// end of [atspre_g0int_neg_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_abs_int32
-  (atstype_int32 x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_succ_int32
-  (atstype_int32 x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_pred_int32
-  (atstype_int32 x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_half_int32
-  (atstype_int32 x) { return (x / 2) ; }
-// end of [atspre_g0int_half_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_add_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_sub_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_mul_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_div_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_mod_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_nmod_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_asl_int32
-  (atstype_int32 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_asr_int32
-  (atstype_int32 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_int32]
-ATSinline()
-atstype_int
-atspre_g0int_compare_int32
-(
-  atstype_int32 x1, atstype_int32 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_max_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_int32]
-ATSinline()
-atstype_int32
-atspre_g0int_min_int32
-  (atstype_int32 x1, atstype_int32 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_int32 (atstype_int32 x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_int32 (atstype_int32 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_int32 (atstype_int32 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_int32 (atstype_int32 x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_int32 (atstype_int32 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_int32]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_int32 (atstype_int32 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_int32]
-ATSinline()
-atstype_int64
-atspre_g0int_neg_int64
-  (atstype_int64 x) { return (-x) ; }
-// end of [atspre_g0int_neg_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_abs_int64
-  (atstype_int64 x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_succ_int64
-  (atstype_int64 x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_pred_int64
-  (atstype_int64 x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_half_int64
-  (atstype_int64 x) { return (x / 2) ; }
-// end of [atspre_g0int_half_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_add_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_sub_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_mul_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_div_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_mod_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_nmod_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_asl_int64
-  (atstype_int64 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_asr_int64
-  (atstype_int64 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_int64]
-ATSinline()
-atstype_int
-atspre_g0int_compare_int64
-(
-  atstype_int64 x1, atstype_int64 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_max_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_int64]
-ATSinline()
-atstype_int64
-atspre_g0int_min_int64
-  (atstype_int64 x1, atstype_int64 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_int64 (atstype_int64 x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_int64 (atstype_int64 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_int64 (atstype_int64 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_int64 (atstype_int64 x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_int64 (atstype_int64 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_int64]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_int64 (atstype_int64 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_int64]
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_int8_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0int2uint_int16_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0int2uint_int32_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0int2uint_int64_uint(x) ((atstype_uint)(x))
-//
-#define \
-atspre_g0uint2int_uint8_int(x) ((atstype_int)(x))
-#define \
-atspre_g0uint2int_uint16_int(x) ((atstype_int)(x))
-#define \
-atspre_g0uint2int_uint32_int(x) ((atstype_int)(x))
-#define \
-atspre_g0uint2int_uint64_int(x) ((atstype_int)(x))
-//
-#define \
-atspre_g0uint2uint_uint8_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0uint2uint_uint16_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0uint2uint_uint32_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g0uint2uint_uint64_uint(x) ((atstype_uint)(x))
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_uint8
-atspre_g0uint_succ_uint8
-  (atstype_uint8 x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_pred_uint8
-  (atstype_uint8 x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_half_uint8
-  (atstype_uint8 x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_add_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_sub_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_mul_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_div_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_mod_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_lsl_uint8
-  (atstype_uint8 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_lsr_uint8
-  (atstype_uint8 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_lnot_uint8
-  (atstype_uint8 x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_lor_uint8
-  (atstype_uint8 x, atstype_uint8 y) { return (x | y) ; }
-// end of [atspre_g0uint_uint8_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_land_uint8
-  (atstype_uint8 x, atstype_uint8 y) { return (x & y) ; }
-// end of [atspre_g0uint_uint8_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_lxor_uint8
-  (atstype_uint8 x, atstype_uint8 y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uint8_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uint8]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uint8
-(
-  atstype_uint8 x1, atstype_uint8 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_max_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uint8]
-ATSinline()
-atstype_uint8
-atspre_g0uint_min_uint8
-  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uint8 (atstype_uint8 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uint8 (atstype_uint8 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uint8 (atstype_uint8 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uint8]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uint8 (atstype_uint8 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uint8]
-ATSinline()
-atstype_uint16
-atspre_g0uint_succ_uint16
-  (atstype_uint16 x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_pred_uint16
-  (atstype_uint16 x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_half_uint16
-  (atstype_uint16 x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_add_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_sub_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_mul_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_div_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_mod_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_lsl_uint16
-  (atstype_uint16 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_lsr_uint16
-  (atstype_uint16 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_lnot_uint16
-  (atstype_uint16 x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_lor_uint16
-  (atstype_uint16 x, atstype_uint16 y) { return (x | y) ; }
-// end of [atspre_g0uint_uint16_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_land_uint16
-  (atstype_uint16 x, atstype_uint16 y) { return (x & y) ; }
-// end of [atspre_g0uint_uint16_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_lxor_uint16
-  (atstype_uint16 x, atstype_uint16 y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uint16_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uint16]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uint16
-(
-  atstype_uint16 x1, atstype_uint16 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_max_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uint16]
-ATSinline()
-atstype_uint16
-atspre_g0uint_min_uint16
-  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uint16 (atstype_uint16 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uint16 (atstype_uint16 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uint16 (atstype_uint16 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uint16]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uint16 (atstype_uint16 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uint16]
-ATSinline()
-atstype_uint32
-atspre_g0uint_succ_uint32
-  (atstype_uint32 x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_pred_uint32
-  (atstype_uint32 x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_half_uint32
-  (atstype_uint32 x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_add_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_sub_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_mul_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_div_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_mod_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_lsl_uint32
-  (atstype_uint32 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_lsr_uint32
-  (atstype_uint32 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_lnot_uint32
-  (atstype_uint32 x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_lor_uint32
-  (atstype_uint32 x, atstype_uint32 y) { return (x | y) ; }
-// end of [atspre_g0uint_uint32_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_land_uint32
-  (atstype_uint32 x, atstype_uint32 y) { return (x & y) ; }
-// end of [atspre_g0uint_uint32_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_lxor_uint32
-  (atstype_uint32 x, atstype_uint32 y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uint32_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uint32]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uint32
-(
-  atstype_uint32 x1, atstype_uint32 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_max_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uint32]
-ATSinline()
-atstype_uint32
-atspre_g0uint_min_uint32
-  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uint32 (atstype_uint32 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uint32 (atstype_uint32 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uint32 (atstype_uint32 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uint32]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uint32 (atstype_uint32 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uint32]
-ATSinline()
-atstype_uint64
-atspre_g0uint_succ_uint64
-  (atstype_uint64 x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_pred_uint64
-  (atstype_uint64 x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_half_uint64
-  (atstype_uint64 x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_add_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_sub_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_mul_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_div_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_mod_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_lsl_uint64
-  (atstype_uint64 x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_lsr_uint64
-  (atstype_uint64 x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_lnot_uint64
-  (atstype_uint64 x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_lor_uint64
-  (atstype_uint64 x, atstype_uint64 y) { return (x | y) ; }
-// end of [atspre_g0uint_uint64_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_land_uint64
-  (atstype_uint64 x, atstype_uint64 y) { return (x & y) ; }
-// end of [atspre_g0uint_uint64_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_lxor_uint64
-  (atstype_uint64 x, atstype_uint64 y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uint64_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uint64]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uint64
-(
-  atstype_uint64 x1, atstype_uint64 x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_max_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uint64]
-ATSinline()
-atstype_uint64
-atspre_g0uint_min_uint64
-  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uint64 (atstype_uint64 x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uint64 (atstype_uint64 x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uint64 (atstype_uint64 x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uint64]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uint64 (atstype_uint64 x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uint64]
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED
-
-/* ****** ****** */
-
-/* end of [integer_fixed.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_long.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_long.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_long.cats
+++ /dev/null
@@ -1,124 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer_long.atxt
-** Time of generation: Mon Jun  4 01:42:52 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG
-#define ATSLIB_PRELUDE_CATS_INTEGER_LONG
-
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_int_lint(x) ((atstype_lint)(x))
-#define \
-atspre_g1int2int_int_lint(x) atspre_g0int2int_int_lint(x)
-//
-#define \
-atspre_g0int2int_int_llint(x) ((atstype_llint)(x))
-#define \
-atspre_g1int2int_int_llint(x) atspre_g0int2int_int_llint(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_lint_int(x) ((atstype_int)(x))
-#define \
-atspre_g1int2int_lint_int(x) atspre_g0int2int_lint_int(x)
-//
-#define \
-atspre_g0int2int_lint_lint(x) ((atstype_lint)(x))
-#define \
-atspre_g1int2int_lint_lint(x) atspre_g0int2int_lint_lint(x)
-//
-#define \
-atspre_g0int2int_lint_llint(x) ((atstype_llint)(x))
-#define \
-atspre_g1int2int_lint_llint(x) atspre_g0int2int_lint_llint(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_int_ulint(x) ((atstype_ulint)(x))
-#define \
-atspre_g1int2uint_int_ulint(x) atspre_g0int2uint_int_ulint(x)
-//
-#define \
-atspre_g0int2uint_int_ullint(x) ((atstype_ullint)(x))
-#define \
-atspre_g1int2uint_int_ullint(x) atspre_g0int2uint_int_ullint(x)
-//
-#define \
-atspre_g0int2uint_lint_ulint(x) ((atstype_ulint)(x))
-#define \
-atspre_g1int2uint_lint_ulint(x) atspre_g0int2uint_lint_ulint(x)
-//
-#define \
-atspre_g0int2uint_lint_ullint(x) ((atstype_ullint)(x))
-#define \
-atspre_g1int2uint_lint_ullint(x) atspre_g0int2uint_lint_ullint(x)
-//
-#define \
-atspre_g0int2uint_llint_ullint(x) ((atstype_ullint)(x))
-#define \
-atspre_g1int2uint_llint_ullint(x) atspre_g0int2uint_llint_ullint(x)
-//
-/* ****** ****** */
-
-#define atspre_g0uint2int_uint_lint(x) ((atstype_lint)(x))
-#define atspre_g0uint2int_uint_llint(x) ((atstype_llint)(x))
-#define atspre_g1uint2int_uint_int atspre_g0uint2int_uint_int
-#define atspre_g1uint2int_uint_lint atspre_g0uint2int_uint_lint
-#define atspre_g1uint2int_uint_llint atspre_g0uint2int_uint_llint
-#define atspre_g0uint2uint_uint_ulint(x) ((atstype_ulint)(x))
-#define atspre_g0uint2uint_uint_ullint(x) ((atstype_ullint)(x))
-#define atspre_g1uint2uint_uint_ulint atspre_g0uint2uint_uint_ulint
-#define atspre_g1uint2uint_uint_ullint atspre_g0uint2uint_uint_ullint
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG
-
-/* ****** ****** */
-
-/* end of [integer_long.cats] */
-
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_ptr.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_ptr.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_ptr.cats
+++ /dev/null
@@ -1,475 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer_ptr.atxt
-** Time of generation: Mon Jun  4 01:42:54 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR
-#define ATSLIB_PRELUDE_CATS_INTEGER_PTR
-
-/* ****** ****** */
-
-#include <stdint.h>
-
-/* ****** ****** */
-
-typedef intptr_t atstype_intptr ;
-typedef uintptr_t atstype_uintptr ;
-
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_int_intptr(x) ((atstype_intptr)(x))
-#define \
-atspre_g0int2int_lint_intptr(x) ((atstype_intptr)(x))
-//
-#define \
-atspre_g0int2uint_int_uintptr(x) ((atstype_uintptr)(x))
-//
-#define \
-atspre_g0uint2uint_uint_uintptr(x) ((atstype_uintptr)(x))
-#define \
-atspre_g0uint2uint_ulint_uintptr(x) ((atstype_uintptr)(x))
-//
-/* ****** ****** */
-//
-#define \
-atspre_g1int2int_int_intptr atspre_g0int2int_int_intptr
-#define \
-atspre_g1int2int_lint_intptr atspre_g0int2int_lint_intptr
-//
-#define \
-atspre_g1int2uint_int_uintptr atspre_g0int2uint_int_uintptr
-//
-#define \
-atspre_g1uint2uint_uint_uintptr atspre_g0uint2uint_uint_uintptr
-#define \
-atspre_g1uint2uint_ulint_uintptr atspre_g0uint2uint_ulint_uintptr
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_intptr
-atspre_g0int_neg_intptr
-  (atstype_intptr x) { return (-x) ; }
-// end of [atspre_g0int_neg_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_abs_intptr
-  (atstype_intptr x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_succ_intptr
-  (atstype_intptr x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_pred_intptr
-  (atstype_intptr x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_half_intptr
-  (atstype_intptr x) { return (x / 2) ; }
-// end of [atspre_g0int_half_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_add_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_sub_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_mul_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_div_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_mod_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_nmod_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_asl_intptr
-  (atstype_intptr x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_asr_intptr
-  (atstype_intptr x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_intptr]
-ATSinline()
-atstype_int
-atspre_g0int_compare_intptr
-(
-  atstype_intptr x1, atstype_intptr x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_max_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_intptr]
-ATSinline()
-atstype_intptr
-atspre_g0int_min_intptr
-  (atstype_intptr x1, atstype_intptr x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_intptr (atstype_intptr x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_intptr (atstype_intptr x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_intptr (atstype_intptr x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_intptr (atstype_intptr x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_intptr (atstype_intptr x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_intptr]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_intptr (atstype_intptr x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_intptr]
-//
-#define atspre_g1int_abs_intptr atspre_g0int_abs_intptr
-#define atspre_g1int_neg_intptr atspre_g0int_neg_intptr
-#define atspre_g1int_succ_intptr atspre_g0int_succ_intptr
-#define atspre_g1int_pred_intptr atspre_g0int_pred_intptr
-#define atspre_g1int_half_intptr atspre_g0int_half_intptr
-#define atspre_g1int_add_intptr atspre_g0int_add_intptr
-#define atspre_g1int_sub_intptr atspre_g0int_sub_intptr
-#define atspre_g1int_mul_intptr atspre_g0int_mul_intptr
-#define atspre_g1int_div_intptr atspre_g0int_div_intptr
-#define atspre_g1int_nmod_intptr atspre_g0int_nmod_intptr
-#define atspre_g1int_lt_intptr atspre_g0int_lt_intptr
-#define atspre_g1int_lte_intptr atspre_g0int_lte_intptr
-#define atspre_g1int_gt_intptr atspre_g0int_gt_intptr
-#define atspre_g1int_gte_intptr atspre_g0int_gte_intptr
-#define atspre_g1int_eq_intptr atspre_g0int_eq_intptr
-#define atspre_g1int_neq_intptr atspre_g0int_neq_intptr
-#define atspre_g1int_compare_intptr atspre_g0int_compare_intptr
-#define atspre_g1int_max_intptr atspre_g0int_max_intptr
-#define atspre_g1int_min_intptr atspre_g0int_min_intptr
-#define atspre_g1int_isltz_intptr atspre_g0int_isltz_intptr
-#define atspre_g1int_isltez_intptr atspre_g0int_isltez_intptr
-#define atspre_g1int_isgtz_intptr atspre_g0int_isgtz_intptr
-#define atspre_g1int_isgtez_intptr atspre_g0int_isgtez_intptr
-#define atspre_g1int_iseqz_intptr atspre_g0int_iseqz_intptr
-#define atspre_g1int_isneqz_intptr atspre_g0int_isneqz_intptr
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_uintptr
-atspre_g0uint_succ_uintptr
-  (atstype_uintptr x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_pred_uintptr
-  (atstype_uintptr x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_half_uintptr
-  (atstype_uintptr x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_add_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_sub_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_mul_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_div_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_mod_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_lsl_uintptr
-  (atstype_uintptr x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_lsr_uintptr
-  (atstype_uintptr x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_lnot_uintptr
-  (atstype_uintptr x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_lor_uintptr
-  (atstype_uintptr x, atstype_uintptr y) { return (x | y) ; }
-// end of [atspre_g0uint_uintptr_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_land_uintptr
-  (atstype_uintptr x, atstype_uintptr y) { return (x & y) ; }
-// end of [atspre_g0uint_uintptr_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_lxor_uintptr
-  (atstype_uintptr x, atstype_uintptr y) { return (x ^ y) ; }
-// end of [atspre_g0uint_uintptr_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_uintptr]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_uintptr
-(
-  atstype_uintptr x1, atstype_uintptr x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_max_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_uintptr]
-ATSinline()
-atstype_uintptr
-atspre_g0uint_min_uintptr
-  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_uintptr (atstype_uintptr x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_uintptr (atstype_uintptr x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_uintptr (atstype_uintptr x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_uintptr]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_uintptr (atstype_uintptr x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_uintptr]
-//
-#define atspre_g1uint_succ_uintptr atspre_g0uint_succ_uintptr
-#define atspre_g1uint_pred_uintptr atspre_g0uint_pred_uintptr
-#define atspre_g1uint_half_uintptr atspre_g0uint_half_uintptr
-#define atspre_g1uint_add_uintptr atspre_g0uint_add_uintptr
-#define atspre_g1uint_sub_uintptr atspre_g0uint_sub_uintptr
-#define atspre_g1uint_mul_uintptr atspre_g0uint_mul_uintptr
-#define atspre_g1uint_div_uintptr atspre_g0uint_div_uintptr
-#define atspre_g1uint_mod_uintptr atspre_g0uint_mod_uintptr
-#define atspre_g1uint_lt_uintptr atspre_g0uint_lt_uintptr
-#define atspre_g1uint_lte_uintptr atspre_g0uint_lte_uintptr
-#define atspre_g1uint_gt_uintptr atspre_g0uint_gt_uintptr
-#define atspre_g1uint_gte_uintptr atspre_g0uint_gte_uintptr
-#define atspre_g1uint_eq_uintptr atspre_g0uint_eq_uintptr
-#define atspre_g1uint_neq_uintptr atspre_g0uint_neq_uintptr
-#define atspre_g1uint_compare_uintptr atspre_g0uint_compare_uintptr
-#define atspre_g1uint_max_uintptr atspre_g0uint_max_uintptr
-#define atspre_g1uint_min_uintptr atspre_g0uint_min_uintptr
-#define atspre_g1uint_isltez_uintptr atspre_g0uint_isltez_uintptr
-#define atspre_g1uint_isgtz_uintptr atspre_g0uint_isgtz_uintptr
-#define atspre_g1uint_iseqz_uintptr atspre_g0uint_iseqz_uintptr
-#define atspre_g1uint_isneqz_uintptr atspre_g0uint_isneqz_uintptr
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR
-
-/* ****** ****** */
-
-/* end of [integer_ptr.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_short.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_short.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_short.cats
+++ /dev/null
@@ -1,479 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer_short.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT
-#define ATSLIB_PRELUDE_CATS_INTEGER_SHORT
-
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_int_sint(x) ((atstype_sint)(x))
-#define \
-atspre_g1int2int_int_sint(x) atspre_g0int2int_int_sint(x)
-#define \
-atspre_g0uint2int_uint_sint(x) ((atstype_sint)(x))
-#define \
-atspre_g1uint2int_uint_sint(x) atspre_g0uint2int_uint_sint(x)
-//
-#define \
-atspre_g0int2uint_int_usint(x) ((atstype_usint)(x))
-#define \
-atspre_g1int2uint_int_usint(x) atspre_g0int2uint_int_usint(x)
-#define \
-atspre_g0uint2uint_uint_usint(x) ((atstype_usint)(x))
-#define \
-atspre_g1uint2uint_uint_usint(x) atspre_g0uint2uint_uint_usint(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_sint_usint(x) ((atstype_usint)(x))
-#define \
-atspre_g1int2uint_sint_usint(x) atspre_g0int2uint_sint_usint(x)
-#define \
-atspre_g0uint2int_usint_sint(x) ((atstype_usint)(x))
-#define \
-atspre_g1uint2int_usint_sint(x) atspre_g0uint2int_sint_usint(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_sint_int(x) ((atstype_int)(x))
-#define \
-atspre_g1int2int_sint_int(x) atspre_g0int2int_sint_int(x)
-//
-#define \
-atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x))
-#define \
-atspre_g1uint2uint_usint_uint(x) atspre_g0uint2uint_usint_uint(x)
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_sint
-atspre_g0int_neg_sint
-  (atstype_sint x) { return (-x) ; }
-// end of [atspre_g0int_neg_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_abs_sint
-  (atstype_sint x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_succ_sint
-  (atstype_sint x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_pred_sint
-  (atstype_sint x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_half_sint
-  (atstype_sint x) { return (x / 2) ; }
-// end of [atspre_g0int_half_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_add_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_sub_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_mul_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_div_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_mod_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_nmod_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_asl_sint
-  (atstype_sint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_asr_sint
-  (atstype_sint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_sint]
-ATSinline()
-atstype_int
-atspre_g0int_compare_sint
-(
-  atstype_sint x1, atstype_sint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_max_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_sint]
-ATSinline()
-atstype_sint
-atspre_g0int_min_sint
-  (atstype_sint x1, atstype_sint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_sint (atstype_sint x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_sint (atstype_sint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_sint (atstype_sint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_sint (atstype_sint x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_sint (atstype_sint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_sint]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_sint (atstype_sint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_sint]
-//
-#define atspre_g1int_abs_sint atspre_g0int_abs_sint
-#define atspre_g1int_neg_sint atspre_g0int_neg_sint
-#define atspre_g1int_succ_sint atspre_g0int_succ_sint
-#define atspre_g1int_pred_sint atspre_g0int_pred_sint
-#define atspre_g1int_half_sint atspre_g0int_half_sint
-#define atspre_g1int_add_sint atspre_g0int_add_sint
-#define atspre_g1int_sub_sint atspre_g0int_sub_sint
-#define atspre_g1int_mul_sint atspre_g0int_mul_sint
-#define atspre_g1int_div_sint atspre_g0int_div_sint
-#define atspre_g1int_nmod_sint atspre_g0int_nmod_sint
-#define atspre_g1int_lt_sint atspre_g0int_lt_sint
-#define atspre_g1int_lte_sint atspre_g0int_lte_sint
-#define atspre_g1int_gt_sint atspre_g0int_gt_sint
-#define atspre_g1int_gte_sint atspre_g0int_gte_sint
-#define atspre_g1int_eq_sint atspre_g0int_eq_sint
-#define atspre_g1int_neq_sint atspre_g0int_neq_sint
-#define atspre_g1int_compare_sint atspre_g0int_compare_sint
-#define atspre_g1int_max_sint atspre_g0int_max_sint
-#define atspre_g1int_min_sint atspre_g0int_min_sint
-#define atspre_g1int_isltz_sint atspre_g0int_isltz_sint
-#define atspre_g1int_isltez_sint atspre_g0int_isltez_sint
-#define atspre_g1int_isgtz_sint atspre_g0int_isgtz_sint
-#define atspre_g1int_isgtez_sint atspre_g0int_isgtez_sint
-#define atspre_g1int_iseqz_sint atspre_g0int_iseqz_sint
-#define atspre_g1int_isneqz_sint atspre_g0int_isneqz_sint
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_usint
-atspre_g0uint_succ_usint
-  (atstype_usint x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_pred_usint
-  (atstype_usint x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_half_usint
-  (atstype_usint x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_add_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_sub_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_mul_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_div_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_mod_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_lsl_usint
-  (atstype_usint x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_lsr_usint
-  (atstype_usint x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_lnot_usint
-  (atstype_usint x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_lor_usint
-  (atstype_usint x, atstype_usint y) { return (x | y) ; }
-// end of [atspre_g0uint_usint_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_land_usint
-  (atstype_usint x, atstype_usint y) { return (x & y) ; }
-// end of [atspre_g0uint_usint_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_lxor_usint
-  (atstype_usint x, atstype_usint y) { return (x ^ y) ; }
-// end of [atspre_g0uint_usint_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_usint]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_usint
-(
-  atstype_usint x1, atstype_usint x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_max_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_usint]
-ATSinline()
-atstype_usint
-atspre_g0uint_min_usint
-  (atstype_usint x1, atstype_usint x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_usint (atstype_usint x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_usint (atstype_usint x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_usint (atstype_usint x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_usint]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_usint (atstype_usint x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_usint]
-//
-#define atspre_g1uint_succ_usint atspre_g0uint_succ_usint
-#define atspre_g1uint_pred_usint atspre_g0uint_pred_usint
-#define atspre_g1uint_half_usint atspre_g0uint_half_usint
-#define atspre_g1uint_add_usint atspre_g0uint_add_usint
-#define atspre_g1uint_sub_usint atspre_g0uint_sub_usint
-#define atspre_g1uint_mul_usint atspre_g0uint_mul_usint
-#define atspre_g1uint_div_usint atspre_g0uint_div_usint
-#define atspre_g1uint_mod_usint atspre_g0uint_mod_usint
-#define atspre_g1uint_lt_usint atspre_g0uint_lt_usint
-#define atspre_g1uint_lte_usint atspre_g0uint_lte_usint
-#define atspre_g1uint_gt_usint atspre_g0uint_gt_usint
-#define atspre_g1uint_gte_usint atspre_g0uint_gte_usint
-#define atspre_g1uint_eq_usint atspre_g0uint_eq_usint
-#define atspre_g1uint_neq_usint atspre_g0uint_neq_usint
-#define atspre_g1uint_compare_usint atspre_g0uint_compare_usint
-#define atspre_g1uint_max_usint atspre_g0uint_max_usint
-#define atspre_g1uint_min_usint atspre_g0uint_min_usint
-#define atspre_g1uint_isltez_usint atspre_g0uint_isltez_usint
-#define atspre_g1uint_isgtz_usint atspre_g0uint_isgtz_usint
-#define atspre_g1uint_iseqz_usint atspre_g0uint_iseqz_usint
-#define atspre_g1uint_isneqz_usint atspre_g0uint_isneqz_usint
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT
-
-/* ****** ****** */
-
-/* end of [integer_short.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_size.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_size.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/integer_size.cats
+++ /dev/null
@@ -1,533 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/integer_size.atxt
-** Time of generation: Mon Jun  4 01:42:52 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE
-#define ATSLIB_PRELUDE_CATS_INTEGER_SIZE
-
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_int_size(x) ((atstype_size)(x))
-#define \
-atspre_g1int2uint_int_size(x) atspre_g0int2uint_int_size(x)
-#define \
-atspre_g0uint2uint_uint_size(x) ((atstype_size)(x))
-#define \
-atspre_g1uint2uint_uint_size(x) atspre_g0uint2uint_uint_size(x)
-//
-#define \
-atspre_g0int2int_int_ssize(x) ((atstype_ssize)(x))
-#define \
-atspre_g1int2int_int_ssize(x) atspre_g0int2int_int_ssize(x)
-#define \
-atspre_g0uint2int_uint_ssize(x) ((atstype_ssize)(x))
-#define \
-atspre_g1uint2int_uint_ssize(x) atspre_g0uint2int_uint_ssize(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2uint_lint_size(x) ((atstype_size)(x))
-#define \
-atspre_g1int2uint_lint_size(x) atspre_g0int2uint_lint_size(x)
-#define \
-atspre_g0uint2uint_ulint_size(x) ((atstype_size)(x))
-#define \
-atspre_g1uint2uint_ulint_size(x) atspre_g0uint2uint_ulint_size(x)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_lint_ssize(ssz) ((atstype_ssize)(ssz))
-#define \
-atspre_g1int2int_lint_ssize(ssz) atspre_g0int2int_lint_ssize(ssz)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0uint2int_size_int(sz) ((atstype_int)(sz))
-#define \
-atspre_g1uint2int_size_int(sz) atspre_g0uint2int_size_int(sz)
-//
-#define \
-atspre_g0uint2uint_size_uint(sz) ((atstype_uint)(sz))
-#define \
-atspre_g1uint2uint_size_uint(sz) atspre_g0uint2uint_size_uint(sz)
-//
-#define \
-atspre_g0uint2uint_size_size(sz) ((atstype_size)(sz))
-#define \
-atspre_g1uint2uint_size_size(sz) atspre_g0uint2uint_size_size(sz)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0int2int_ssize_int(ssz) ((atstype_int)(ssz))
-#define \
-atspre_g1int2int_ssize_int(ssz) atspre_g0int2int_ssize_int(ssz)
-//
-#define \
-atspre_g0int2uint_ssize_uint(ssz) ((atstype_uint)(ssz))
-#define \
-atspre_g1int2uint_ssize_uint(ssz) atspre_g0int2uint_ssize_uint(ssz)
-//
-#define \
-atspre_g0int2int_ssize_ssize(ssz) ((atstype_ssize)(ssz))
-#define \
-atspre_g1int2int_ssize_ssize(ssz) atspre_g0int2int_ssize_ssize(ssz)
-//
-/* ****** ****** */
-//
-#define \
-atspre_g0uint2int_size_ssize(sz) ((atstype_ssize)(sz))
-#define \
-atspre_g1uint2int_size_ssize(sz) atspre_g0uint2int_size_ssize(sz)
-#define \
-atspre_g0int2uint_ssize_size(ssz) ((atstype_size)(ssz))
-#define \
-atspre_g1int2uint_ssize_size(ssz) atspre_g0int2uint_ssize_size(ssz)
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_size
-atspre_g0uint_succ_size
-  (atstype_size x) { return (x + 1) ; }
-// end of [atspre_g0uint_succ_size]
-ATSinline()
-atstype_size
-atspre_g0uint_pred_size
-  (atstype_size x) { return (x - 1) ; }
-// end of [atspre_g0uint_pred_size]
-ATSinline()
-atstype_size
-atspre_g0uint_half_size
-  (atstype_size x) { return (x >> 1) ; }
-// end of [atspre_g0uint_half_size]
-ATSinline()
-atstype_size
-atspre_g0uint_add_size
-  (atstype_size x1, atstype_size x2) { return (x1 + x2) ; }
-// end of [atspre_g0uint_add_size]
-ATSinline()
-atstype_size
-atspre_g0uint_sub_size
-  (atstype_size x1, atstype_size x2) { return (x1 - x2) ; }
-// end of [atspre_g0uint_sub_size]
-ATSinline()
-atstype_size
-atspre_g0uint_mul_size
-  (atstype_size x1, atstype_size x2) { return (x1 * x2) ; }
-// end of [atspre_g0uint_mul_size]
-ATSinline()
-atstype_size
-atspre_g0uint_div_size
-  (atstype_size x1, atstype_size x2) { return (x1 / x2) ; }
-// end of [atspre_g0uint_div_size]
-ATSinline()
-atstype_size
-atspre_g0uint_mod_size
-  (atstype_size x1, atstype_size x2) { return (x1 % x2) ; }
-// end of [atspre_g0uint_mod_size]
-ATSinline()
-atstype_size
-atspre_g0uint_lsl_size
-  (atstype_size x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0uint_lsl_size]
-ATSinline()
-atstype_size
-atspre_g0uint_lsr_size
-  (atstype_size x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0uint_lsr_size]
-ATSinline()
-atstype_size
-atspre_g0uint_lnot_size
-  (atstype_size x) { return ~(x) ; }
-// end of [atspre_g0uint_lnot_size]
-ATSinline()
-atstype_size
-atspre_g0uint_lor_size
-  (atstype_size x, atstype_size y) { return (x | y) ; }
-// end of [atspre_g0uint_size_size]
-ATSinline()
-atstype_size
-atspre_g0uint_land_size
-  (atstype_size x, atstype_size y) { return (x & y) ; }
-// end of [atspre_g0uint_size_size]
-ATSinline()
-atstype_size
-atspre_g0uint_lxor_size
-  (atstype_size x, atstype_size y) { return (x ^ y) ; }
-// end of [atspre_g0uint_size_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_lt_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lt_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_lte_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_lte_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_gt_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gt_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_gte_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_gte_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_eq_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_eq_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_neq_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_neq_size]
-ATSinline()
-atstype_int
-atspre_g0uint_compare_size
-(
-  atstype_size x1, atstype_size x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0uint_compare_size]
-ATSinline()
-atstype_size
-atspre_g0uint_max_size
-  (atstype_size x1, atstype_size x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_max_size]
-ATSinline()
-atstype_size
-atspre_g0uint_min_size
-  (atstype_size x1, atstype_size x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0uint_min_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_isltez_size (atstype_size x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isltez_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_isgtz_size (atstype_size x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isgtz_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_iseqz_size (atstype_size x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_iseqz_size]
-ATSinline()
-atstype_bool
-atspre_g0uint_isneqz_size (atstype_size x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0uint_isneqz_size]
-//
-#define atspre_g1uint_succ_size atspre_g0uint_succ_size
-#define atspre_g1uint_pred_size atspre_g0uint_pred_size
-#define atspre_g1uint_half_size atspre_g0uint_half_size
-#define atspre_g1uint_add_size atspre_g0uint_add_size
-#define atspre_g1uint_sub_size atspre_g0uint_sub_size
-#define atspre_g1uint_mul_size atspre_g0uint_mul_size
-#define atspre_g1uint_div_size atspre_g0uint_div_size
-#define atspre_g1uint_mod_size atspre_g0uint_mod_size
-#define atspre_g1uint_lt_size atspre_g0uint_lt_size
-#define atspre_g1uint_lte_size atspre_g0uint_lte_size
-#define atspre_g1uint_gt_size atspre_g0uint_gt_size
-#define atspre_g1uint_gte_size atspre_g0uint_gte_size
-#define atspre_g1uint_eq_size atspre_g0uint_eq_size
-#define atspre_g1uint_neq_size atspre_g0uint_neq_size
-#define atspre_g1uint_compare_size atspre_g0uint_compare_size
-#define atspre_g1uint_max_size atspre_g0uint_max_size
-#define atspre_g1uint_min_size atspre_g0uint_min_size
-#define atspre_g1uint_isltez_size atspre_g0uint_isltez_size
-#define atspre_g1uint_isgtz_size atspre_g0uint_isgtz_size
-#define atspre_g1uint_iseqz_size atspre_g0uint_iseqz_size
-#define atspre_g1uint_isneqz_size atspre_g0uint_isneqz_size
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_ssize
-atspre_g0int_neg_ssize
-  (atstype_ssize x) { return (-x) ; }
-// end of [atspre_g0int_neg_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_abs_ssize
-  (atstype_ssize x) { return (x >= 0 ? x : -x) ; }
-// end of [atspre_g0int_abs_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_succ_ssize
-  (atstype_ssize x) { return (x + 1) ; }
-// end of [atspre_g0int_succ_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_pred_ssize
-  (atstype_ssize x) { return (x - 1) ; }
-// end of [atspre_g0int_pred_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_half_ssize
-  (atstype_ssize x) { return (x / 2) ; }
-// end of [atspre_g0int_half_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_add_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 + x2) ; }
-// end of [atspre_g0int_add_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_sub_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 - x2) ; }
-// end of [atspre_g0int_sub_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_mul_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 * x2) ; }
-// end of [atspre_g0int_mul_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_div_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 / x2) ; }
-// end of [atspre_g0int_div_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_mod_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_mod_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_nmod_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; }
-// end of [atspre_g0int_nmod_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_asl_ssize
-  (atstype_ssize x, atstype_int n) { return (x << n) ; }
-// end of [atspre_g0int_asl_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_asr_ssize
-  (atstype_ssize x, atstype_int n) { return (x >> n) ; }
-// end of [atspre_g0int_asr_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_lt_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 < x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lt_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_lte_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_lte_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_gt_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 > x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gt_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_gte_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_gte_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_eq_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 == x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_eq_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_neq_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  return (x1 != x2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_neq_ssize]
-ATSinline()
-atstype_int
-atspre_g0int_compare_ssize
-(
-  atstype_ssize x1, atstype_ssize x2
-) {
-  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
-} // end of [atspre_g0int_compare_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_max_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 >= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_max_ssize]
-ATSinline()
-atstype_ssize
-atspre_g0int_min_ssize
-  (atstype_ssize x1, atstype_ssize x2) { return (x1 <= x2 ? x1 : x2) ; }
-// end of [atspre_g0int_min_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_isltz_ssize (atstype_ssize x)
-{
-  return (x < 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltz_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_isltez_ssize (atstype_ssize x)
-{
-  return (x <= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isltez_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtz_ssize (atstype_ssize x)
-{
-  return (x > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtz_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_isgtez_ssize (atstype_ssize x)
-{
-  return (x >= 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isgtez_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_iseqz_ssize (atstype_ssize x)
-{
-  return (x == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_iseqz_ssize]
-ATSinline()
-atstype_bool
-atspre_g0int_isneqz_ssize (atstype_ssize x)
-{
-  return (x != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_g0int_isneqz_ssize]
-//
-#define atspre_g1int_abs_ssize atspre_g0int_abs_ssize
-#define atspre_g1int_neg_ssize atspre_g0int_neg_ssize
-#define atspre_g1int_succ_ssize atspre_g0int_succ_ssize
-#define atspre_g1int_pred_ssize atspre_g0int_pred_ssize
-#define atspre_g1int_half_ssize atspre_g0int_half_ssize
-#define atspre_g1int_add_ssize atspre_g0int_add_ssize
-#define atspre_g1int_sub_ssize atspre_g0int_sub_ssize
-#define atspre_g1int_mul_ssize atspre_g0int_mul_ssize
-#define atspre_g1int_div_ssize atspre_g0int_div_ssize
-#define atspre_g1int_nmod_ssize atspre_g0int_nmod_ssize
-#define atspre_g1int_lt_ssize atspre_g0int_lt_ssize
-#define atspre_g1int_lte_ssize atspre_g0int_lte_ssize
-#define atspre_g1int_gt_ssize atspre_g0int_gt_ssize
-#define atspre_g1int_gte_ssize atspre_g0int_gte_ssize
-#define atspre_g1int_eq_ssize atspre_g0int_eq_ssize
-#define atspre_g1int_neq_ssize atspre_g0int_neq_ssize
-#define atspre_g1int_compare_ssize atspre_g0int_compare_ssize
-#define atspre_g1int_max_ssize atspre_g0int_max_ssize
-#define atspre_g1int_min_ssize atspre_g0int_min_ssize
-#define atspre_g1int_isltz_ssize atspre_g0int_isltz_ssize
-#define atspre_g1int_isltez_ssize atspre_g0int_isltez_ssize
-#define atspre_g1int_isgtz_ssize atspre_g0int_isgtz_ssize
-#define atspre_g1int_isgtez_ssize atspre_g0int_isgtez_ssize
-#define atspre_g1int_iseqz_ssize atspre_g0int_iseqz_ssize
-#define atspre_g1int_isneqz_ssize atspre_g0int_isneqz_ssize
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_size
-atspre_g0string2uint_size
-  (atstype_string inp)
-  { return strtoul((char*)inp, NULL, 10) ; }
-//
-ATSinline()
-atstype_ssize
-atspre_g0string2int_ssize
-  (atstype_string inp) { return atol((char*)inp) ; }
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE
-
-/* ****** ****** */
-
-/* end of [integer_size.cats] */
-
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/list.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/list.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/list.cats
+++ /dev/null
@@ -1,55 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/list.atxt
-** Time of generation: Mon Jun  4 01:42:55 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_LIST
-#define ATSLIB_PRELUDE_CATS_LIST
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_LIST
-
-/* ****** ****** */
-
-/* end of [list.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrix.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrix.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrix.cats
+++ /dev/null
@@ -1,55 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/matrix.atxt
-** Time of generation: Mon Jun  4 01:42:56 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_MATRIX
-#define ATSLIB_PRELUDE_CATS_MATRIX
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_MATRIX
-
-/* ****** ****** */
-
-/* end of [matrix.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrixptr.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrixptr.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/matrixptr.cats
+++ /dev/null
@@ -1,64 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/matrixptr.atxt
-** Time of generation: Mon Jun  4 01:42:56 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR
-#define ATSLIB_PRELUDE_CATS_MATRIXPTR
-
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_matrixptr_free
-  (atstype_arrptr ptr) { ATS_MFREE (ptr) ; return ; }
-// end of [atspre_matrixptr_free]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR
-
-/* ****** ****** */
-
-/* end of [matrixptr.cats] */
-
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/memory.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/memory.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/memory.cats
+++ /dev/null
@@ -1,72 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/memory.atxt
-** Time of generation: Mon Jun  4 01:42:54 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_MEMORY
-#define ATSLIB_PRELUDE_CATS_MEMORY
-
-/* ****** ****** */
-
-#define atspre_minit_gc ATS_MINIT
-
-/* ****** ****** */
-
-#define atspre_mfree_gc ATS_MFREE
-
-/* ****** ****** */
-
-#define atspre_malloc_gc ATS_MALLOC
-
-/* ****** ****** */
-
-#define atspre_calloc_gc ATS_CALLOC
-#define atspre_realloc_gc ATS_REALLOC
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_MEMORY
-
-/* ****** ****** */
-
-/* end of [memory.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/option.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/option.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/option.cats
+++ /dev/null
@@ -1,55 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/option.atxt
-** Time of generation: Mon Jun  4 01:42:55 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: January, 2013 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_OPTION
-#define ATSLIB_PRELUDE_CATS_OPTION
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_OPTION
-
-/* ****** ****** */
-
-/* end of [option.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/pointer.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/pointer.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/pointer.cats
+++ /dev/null
@@ -1,254 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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.
-*) */
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/pointer.atxt
-** Time of generation: Mon Jun  4 01:42:52 2018
-*/
-
-/* ****** ****** */
-
-/*
-(* Author: Hongwei Xi *)
-(* Authoremail: hwxi AT cs DOT bu DOT edu *)
-(* Start time: February, 2012 *)
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_POINTER
-#define ATSLIB_PRELUDE_CATS_POINTER
-
-/* ****** ****** */
-
-#ifndef memset
-extern
-void *memset(void *bufp, int c, size_t n) ;
-#endif // #ifndef
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atspre_ptr_null () { return (void*)0 ; }
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_ptr_is_null
-  (atstype_ptr p) {
-  return (p == (void*)0) ? atsbool_true : atsbool_false ;
-} // end of [atspre_ptr_is_null]
-#define atspre_ptr0_is_null atspre_ptr_is_null
-#define atspre_ptr1_is_null atspre_ptr_is_null
-
-ATSinline()
-atstype_bool
-atspre_ptr_isnot_null
-  (atstype_ptr p) {
-  return (p != (void*)0) ? atsbool_true : atsbool_false ;
-} // end of [atspre_ptr_isnot_null]
-#define atspre_ptr0_isnot_null atspre_ptr_isnot_null
-#define atspre_ptr1_isnot_null atspre_ptr_isnot_null
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ptr
-atspre_add_ptr_bsz
-  (atstype_ptr p, atstype_size ofs) { return ((char*)p + ofs) ; }
-// end of [atspre_add_ptr_bsz]
-#define atspre_add_ptr0_bsz atspre_add_ptr_bsz
-#define atspre_add_ptr1_bsz atspre_add_ptr_bsz
-
-ATSinline()
-atstype_ptr
-atspre_sub_ptr_bsz
-  (atstype_ptr p, atstype_size ofs) { return ((char*)p - ofs) ; }
-// end of [atspre_sub_ptr_bsz]
-#define atspre_sub_ptr0_bsz atspre_sub_ptr_bsz
-#define atspre_sub_ptr1_bsz atspre_sub_ptr_bsz
-
-/* ****** ****** */
-
-ATSinline()
-atstype_ssize
-atspre_sub_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) { return ((char*)p1 - (char*)p2) ; }
-// end of [atspre_sub_ptr_ptr]
-#define atspre_sub_ptr0_ptr0 atspre_sub_ptr_ptr
-#define atspre_sub_ptr1_ptr1 atspre_sub_ptr_ptr
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_lt_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 < p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lt_ptr_ptr]
-#define atspre_lt_ptr0_ptr0 atspre_lt_ptr_ptr
-#define atspre_lt_ptr1_ptr1 atspre_lt_ptr_ptr
-
-ATSinline()
-atstype_bool
-atspre_lte_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 <= p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_lte_ptr_ptr]
-#define atspre_lte_ptr0_ptr0 atspre_lte_ptr_ptr
-#define atspre_lte_ptr1_ptr1 atspre_lte_ptr_ptr
-
-ATSinline()
-atstype_bool
-atspre_gt_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 > p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gt_ptr_ptr]
-#define atspre_gt_ptr0_ptr0 atspre_gt_ptr_ptr
-#define atspre_gt_ptr1_ptr1 atspre_gt_ptr_ptr
-
-ATSinline()
-atstype_bool
-atspre_gte_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 >= p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gte_ptr_ptr]
-#define atspre_gte_ptr0_ptr0 atspre_gte_ptr_ptr
-#define atspre_gte_ptr1_ptr1 atspre_gte_ptr_ptr
-
-ATSinline()
-atstype_bool
-atspre_eq_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 == p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_eq_ptr_ptr]
-#define atspre_eq_ptr0_ptr0 atspre_eq_ptr_ptr
-#define atspre_eq_ptr1_ptr1 atspre_eq_ptr_ptr
-
-ATSinline()
-atstype_bool
-atspre_neq_ptr_ptr
-  (atstype_ptr p1, atstype_ptr p2) {
-  return (p1 != p2 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_neq_ptr_ptr]
-#define atspre_neq_ptr0_ptr0 atspre_neq_ptr_ptr
-#define atspre_neq_ptr1_ptr1 atspre_neq_ptr_ptr
-
-
-ATSinline()
-atstype_int
-atspre_compare_ptr_ptr
-(
-  atstype_ptr p1, atstype_ptr p2
-) {
-  if (p1 >= p2) {
-    if (p1 > p2) return 1 ; else return 0 ;
-  } else return (-1) ;
-} // end of [atspre_compare_ptr_ptr]
-#define atspre_compare_ptr0_ptr0 atspre_compare_ptr_ptr
-#define atspre_compare_ptr1_ptr1 atspre_compare_ptr_ptr
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_gt_ptr_intz
-  (atstype_ptr p, atstype_int _)
-{
-  return (p > 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_gt_ptr_intz]
-#define atspre_gt_ptr0_intz atspre_gt_ptr_intz
-#define atspre_gt_ptr1_intz atspre_gt_ptr_intz
-
-ATSinline()
-atstype_bool
-atspre_eq_ptr_intz
-  (atstype_ptr p, atstype_int _)
-{
-  return (p == 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_eq_ptr_intz]
-#define atspre_eq_ptr0_intz atspre_eq_ptr_intz
-#define atspre_eq_ptr1_intz atspre_eq_ptr_intz
-  
-ATSinline()
-atstype_bool
-atspre_neq_ptr_intz
-  (atstype_ptr p, atstype_int _)
-{
-  return (p != 0 ? atsbool_true : atsbool_false) ;
-} // end of [atspre_neq_ptr_intz]
-#define atspre_neq_ptr0_intz atspre_neq_ptr_intz
-#define atspre_neq_ptr1_intz atspre_neq_ptr_intz
-
-/* ****** ****** */
-//
-#define atspre_aptr_null() atsptr_null
-//
-#define atspre_aptr_is_null atspre_ptr_is_null
-#define atspre_aptr_isnot_null atspre_ptr_isnot_null
-//
-/* ****** ****** */
-//
-#define atspre_cptr_null() atsptr_null
-//
-#define atspre_cptr_is_null atspre_ptr_is_null
-#define atspre_cptr_isnot_null atspre_ptr_isnot_null
-//
-/* ****** ****** */
-
-#define atspre_gt_cptr_intz atspre_gt_ptr_intz
-#define atspre_eq_cptr_intz atspre_eq_ptr_intz
-#define atspre_neq_cptr_intz atspre_neq_ptr_intz
-
-/* ****** ****** */
-//
-#define atspre_ptr_free atspre_mfree_gc
-#define atspre_ptr_alloc_tsz atspre_malloc_gc
-//
-/* ****** ****** */
-
-ATSinline()
-atsvoid_t0ype
-atspre_ptr_nullize_tsz
-(
-  atstype_ptr p, atstype_size tsz
-) {
-  memset (p, 0, tsz) ; return /*void*/ ;
-} // end of [atspre_ptr_nullize_tsz]
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_POINTER
-
-/* ****** ****** */
-
-/* end of [pointer.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/string.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/string.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/string.cats
+++ /dev/null
@@ -1,262 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: April, 2012 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/string.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_STRING
-#define ATSLIB_PRELUDE_CATS_STRING
-
-/* ****** ****** */
-//
-// [string.h]
-//
-extern
-size_t strlen (const char *str) ;
-extern
-int // (sign)
-strcmp (const char *x1, const char *x2) ;
-//
-extern
-char *strchr(const char *str1, int c2) ;
-extern
-char *strrchr(const char *str1, int c2) ;
-extern
-char *strstr(const char *str1, const char *str2) ;
-//
-extern
-size_t strspn(const char *str1, const char *acc2) ;
-extern
-size_t strcspn(const char *str1, const char *rej2) ;
-//
-#ifndef memcpy
-extern
-void *memcpy(void *dest, const void *src, size_t n) ;
-#endif // #ifndef
-//
-/* ****** ****** */
-
-#define atspre_stropt_none() atsptr_null
-
-/* ****** ****** */
-
-ATSinline()
-atstype_bool
-atspre_lt_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn < 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_lt_string_string]
-
-ATSinline()
-atstype_bool
-atspre_lte_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn <= 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_lte_string_string]
-
-ATSinline()
-atstype_bool
-atspre_gt_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn > 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_gt_string_string]
-
-ATSinline()
-atstype_bool
-atspre_gte_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn >= 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_gte_string_string]
-
-ATSinline()
-atstype_bool
-atspre_eq_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn == 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_eq_string_string]
-
-ATSinline()
-atstype_bool
-atspre_neq_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  int sgn = strcmp((char*)x1, (char*)x2) ;
-  return (sgn != 0 ? atsbool_true : atsbool_false) ;
-} // [atspre_neq_string_string]
-
-/* ****** ****** */
-
-#define atspre_string_equal atspre_eq_string_string
-#define atspre_string_noteq atspre_neq_string_string
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_compare_string_string
-(
-  atstype_string x1, atstype_string x2
-) {
-  return atspre_int2sgn(strcmp((char*)x1, (char*)x2)) ;
-} // [atspre_compare_string_string]
-
-/* ****** ****** */
-
-#define atspre_strcmp strcmp
-#define atspre_strlen strlen
-#define atspre_strchr strchr
-#define atspre_strrchr strrchr
-#define atspre_strstr strstr
-#define atspre_strspn strspn
-#define atspre_strcspn strcspn
-
-#define atspre_string_memcpy memcpy
-
-/* ****** ****** */
-//
-// HX-2013-09: declared in [stdio.h]
-//
-#ifndef snprintf
-extern
-int snprintf (char *str, size_t size, const char *format, ...) ;
-#endif // end of [ifndef]
-//
-/* ****** ****** */
-//
-ATSinline()
-atstype_string
-atspre_g0int2string_int
-  (atstype_int x)
-{
-  size_t n0 ;
-  char *res ;
-  size_t ntot ;
-  n0 = 4 ;
-  res = ATS_MALLOC(n0) ;
-  ntot = snprintf(res, n0, "%i", x) ;
-  if (ntot >= n0)
-  {
-    ATS_MFREE(res) ;
-    res = (char*)ATS_MALLOC(ntot+1) ;
-    ntot = snprintf(res, ntot+1, "%i", x) ;
-  }
-  return res ;
-}
-//
-ATSinline()
-atstype_string
-atspre_g0int2string_lint
-  (atstype_lint x)
-{
-  size_t n0 ;
-  char *res ;
-  size_t ntot ;
-  n0 = 4 ;
-  res = ATS_MALLOC(n0) ;
-  ntot = snprintf(res, n0, "%li", x) ;
-  if (ntot >= n0)
-  {
-    ATS_MFREE(res) ;
-    res = (char*)ATS_MALLOC(ntot+1) ;
-    ntot = snprintf(res, ntot+1, "%li", x) ;
-  }
-  return res ;
-}
-//
-ATSinline()
-atstype_string
-atspre_g0int2string_llint
-  (atstype_llint x)
-{
-  size_t n0 ;
-  char *res ;
-  size_t ntot ;
-  n0 = 8 ;
-  res = ATS_MALLOC(n0) ;
-  ntot = snprintf(res, n0, "%lli", x) ;
-  if (ntot >= n0)
-  {
-    ATS_MFREE(res) ;
-    res = (char*)ATS_MALLOC(ntot+1) ;
-    ntot = snprintf(res, ntot+1, "%lli", x) ;
-  }
-  return res ;
-}
-//
-/* ****** ****** */
-//
-#include <stdarg.h>
-//
-// HX-2013-11:
-// these are implemented in [string.dats]
-//
-extern
-atstype_string // Strptr0
-atspre_string_make_snprintf(atstype_string fmt, ...) ;
-extern
-atstype_string // Strptr0
-atspre_string_make_vsnprintf
-  (atstype_size bsz0, atstype_string fmt, va_list ap0) ;
-//
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_STRING
-
-/* ****** ****** */
-
-/* end of [string.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/strptr.cats b/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/strptr.cats
deleted file mode 100644
--- a/.atspkg/contrib/ats-includes-0.3.11/prelude/CATS/strptr.cats
+++ /dev/null
@@ -1,94 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*                         Applied Type System                         */
-/*                                                                     */
-/***********************************************************************/
-
-/* (*
-** ATS/Postiats - Unleashing the Potential of Types!
-** Copyright (C) 2010-2013 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: gmhwxiATgmailDOTcom *)
-(* Start time: March, 2013 *)
-*/
-
-/* ****** ****** */
-
-/*
-** Source:
-** $PATSHOME/prelude/CATS/CODEGEN/strptr.atxt
-** Time of generation: Mon Jun  4 01:42:53 2018
-*/
-
-/* ****** ****** */
-
-#ifndef ATSLIB_PRELUDE_CATS_STRPTR
-#define ATSLIB_PRELUDE_CATS_STRPTR
-
-/* ****** ****** */
-//
-// [string.h]
-//
-extern
-int // (sign)
-strcmp(const char *x1, const char *x2) ;
-
-/* ****** ****** */
-
-#define atspre_strptr_null() atsptr_null
-
-/* ****** ****** */
-
-#define atspre_strptr_free atspre_mfree_gc
-#define atspre_strnptr_free atspre_mfree_gc
-
-/* ****** ****** */
-
-ATSinline()
-atstype_int
-atspre_compare_strptr_strptr
-(
-  atstype_strptr x1, atstype_strptr x2
-) {
-  if(x1==0)
-  {
-    return (x2==0 ? 0 : -1) ;
-  } else {
-    return (x2==0 ? 1 : atspre_compare_string_string(x1, x2)) ;
-  } // end of [if]
-} // end of [atspre_compare_strptr_strptr]
-
-/* ****** ****** */
-
-#define atspre_eq_strptr_string atspre_eq_string_string 
-#define atspre_neq_strptr_string atspre_neq_string_string 
-#define atspre_compare_strptr_string atspre_compare_string_string 
-
-/* ****** ****** */
-
-#endif // ifndef ATSLIB_PRELUDE_CATS_STRPTR
-
-/* ****** ****** */
-
-/* end of [strptr.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_basics.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_basics.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_basics.h
@@ -0,0 +1,172 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: October, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_BASICS_H
+#define PATS_CCOMP_BASICS_H
+
+/* ****** ****** */
+//
+// HX: boolean values
+//
+#define atsbool_true 1
+#define atsbool_false 0
+//
+#define atsptr_null ((void*)0)
+#define the_atsptr_null ((void*)0)
+//
+/* ****** ****** */
+//
+#define ATSstruct struct
+//
+/* ****** ****** */
+/*
+#define ATStypedef typedef
+*/
+//
+/* ****** ****** */
+
+#ifndef \
+ATS_EXTERN_DEF__
+#define ATSextern() extern
+#else
+#define ATSextern() ATS_EXTERN_DEF__
+#endif // #ifndef
+
+/* ****** ****** */
+
+#ifndef \
+ATS_STATIC_DEF__
+#define ATSstatic() static
+#else
+#define ATSstatic() ATS_STATIC_DEF__
+#endif // #ifndef
+
+/* ****** ****** */
+
+#ifndef \
+ATS_INLINE_DEF__
+#define ATSinline() static inline
+#else
+#define ATSinline() ATS_INLINE_DEF__
+#endif // #ifndef
+
+/* ****** ****** */
+//
+#define ATSdynload()
+//
+#define ATSdynloadflag_sta(flag)
+#define ATSdynloadflag_ext(flag) ATSextern() int flag
+//
+#define ATSdynloadflag_init(flag) int flag = 0
+//
+#define ATSdynloadflag_minit(flag) int flag = 0
+//
+#define ATSdynloadset(flag) flag = 1
+#define ATSdynloadfcall(dynloadfun) dynloadfun()
+//
+/* ****** ****** */
+
+#ifndef \
+_ATS_CCOMP_EXCEPTION_NONE_
+//
+#define \
+ATSdynexn_dec(d2c) \
+atstype_exncon d2c = { 0, "__ATSEXNMSG__" }
+//
+#define \
+ATSdynexn_extdec(d2c) ATSextern() atstype_exncon d2c
+//
+#define \
+ATSdynexn_initize(d2c, exnmsg) the_atsexncon_initize(&(d2c), exnmsg)
+//
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+
+/* ****** ****** */
+
+#define ATSassume(flag) void *flag = (void*)0
+
+/* ****** ****** */
+//
+#define ATSclosurerize_end(flab)
+#define ATSclosurerize_beg(flab, tenvs, targs, tres)
+//
+/* ****** ****** */
+
+#define ATSdyncst_mac(d2c)
+#define ATSdyncst_castfn(d2c)
+#define ATSdyncst_extfun(d2c, targs, tres) ATSextern() tres d2c targs
+#define ATSdyncst_stafun(d2c, targs, tres) ATSstatic() tres d2c targs
+
+/* ****** ****** */
+
+#define ATSdyncst_valimp(d2c, type) type d2c
+#define ATSdyncst_valdec(d2c, type) ATSextern() type d2c
+
+/* ****** ****** */
+//
+#define \
+ATSmainats_void_0(err) mainats_void_0()
+#define \
+ATSmainats_argc_argv_0(argc, argv, err) mainats_argc_argv_0(argc, argv)
+#define \
+ATSmainats_argc_argv_envp_0(argc, argv, envp, err) mainats_argc_argv_envp_0(argc, argv, envp)
+//
+#define \
+ATSmainats_void_int(err) err = mainats_void_int()
+#define \
+ATSmainats_argc_argv_int(argc, argv, err) err = mainats_argc_argv_int(argc, argv)
+#define \
+ATSmainats_argc_argv_envp_int(argc, argv, envp, err) err = mainats_argc_argv_envp_int(argc, argv, envp)
+//
+/* ****** ****** */
+//
+extern
+void atsruntime_raise (void *exn) ;
+extern
+void atsruntime_handle_uncaughtexn (void *exn0) ;
+extern
+void atsruntime_handle_unmatchedval (char *msg0) ;
+extern
+void atsruntime_handle_unmatchedarg (char *msg0) ;
+//
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_BASICS_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_basics.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_config.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_config.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/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/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_exception.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_exception.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_exception.h
@@ -0,0 +1,179 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: June, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_EXCEPTION_H
+#define PATS_CCOMP_EXCEPTION_H
+
+/* ****** ****** */
+
+/*
+use -D_XOPEN_SOURCE
+*/
+#include <setjmp.h>
+
+/* ****** ****** */
+
+#define atstype_jmp_buf jmp_buf
+#define atspre_setjmp(env, mask) setjmp(env)
+#define atspre_longjmp(env, ret) longjmp(env, ret)
+
+/* ****** ****** */
+
+/*
+#include <alloca.h>
+*/
+extern void *alloca (size_t bsz) ;
+
+/* ****** ****** */
+
+/*
+extern
+atstype_exncon *atspre_AssertExn_make() ;
+extern
+atstype_exncon *atspre_NotFoundExn_make() ;
+extern
+atstype_exncon *atspre_IllegalArgExn_make(const char*) ;
+extern
+atstype_exncon *atspre_ListSubscriptExn_make() ;
+extern
+atstype_exncon *atspre_StreamSubscriptExn_make() ;
+extern
+atstype_exncon *atspre_ArraySubscriptExn_make() ;
+extern
+atstype_exncon *atspre_MatrixSubscriptExn_make() ;
+//
+extern atstype_exncon *atspre_NotSomeExn_make() ;
+//
+extern
+atstype_bool atspre_isListSubscriptExn (const atstype_exncon*) ;
+extern
+atstype_bool atspre_isStreamSubscriptExn (const atstype_exncon*) ;
+extern
+atstype_bool atspre_isArraySubscriptExn (const atstype_exncon*) ;
+extern
+atstype_bool atspre_isMatrixSubscriptExn (const atstype_exncon*) ;
+//
+extern atstype_bool atspre_isNotSomeExn (const atstype_exncon*) ; 
+*/
+
+/* ****** ****** */
+
+typedef
+struct atsexnframe
+{
+  atstype_jmp_buf env ;
+  atstype_exnconptr exn ;
+  struct atsexnframe *prev ;
+} atsexnframe_t ;
+
+typedef
+atsexnframe_t *atsexnframe_ptr ;
+
+/* ****** ****** */
+
+#define \
+atsexnframe_alloc() alloca(sizeof(atsexnframe_t))
+#define \
+atsexnframe_mfree(frame) /* there-is-nothing-to-do */
+
+/* ****** ****** */
+
+extern
+atsexnframe_ptr *my_atsexnframe_getref () ;
+
+/* ****** ****** */
+
+static
+inline
+void my_atsexnframe_enter
+(
+  atsexnframe_ptr frame
+, atsexnframe_ptr *framep
+) {
+  frame->prev = *framep ; *framep = frame ; return ;
+} // end of [my_atsexnframe_enter]
+
+static
+inline
+void my_atsexnframe_leave
+(
+  atsexnframe_ptr *framep
+) {
+  atsexnframe_mfree(*framep) ; *framep = (*framep)->prev ; return ;
+} // end of [my_atsexnframe_leave]
+
+/* ****** ****** */
+
+/*
+** HX:
+** beg-of-WARNING:
+** DO NOT USE THE FOLLOWING MACROS:
+*/
+
+#define \
+ATStrywith_try(tmpexn) \
+do { \
+  int flag ; \
+  atsexnframe_ptr frame ; \
+  atsexnframe_ptr *framep ; \
+  frame = atsexnframe_alloc() ; \
+  framep = my_atsexnframe_getref() ; \
+  my_atsexnframe_enter(frame, framep) ; \
+  flag = atspre_setjmp(frame->env, 1) ; \
+  if (flag==0) { /* normal */
+
+#define \
+ATStrywith_with(tmpexn) \
+    my_atsexnframe_leave(framep) ; \
+  } else { /* flag<>0 : exceptional */ \
+    tmpexn = (*framep)->exn ; \
+    my_atsexnframe_leave(framep) ;
+
+#define \
+ATStrywith_end(tmpexn) \
+  } \
+} while(0) ; /* end of [do] */
+
+/* end-of-WARNING */
+
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_EXCEPTION_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_exception.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_instrset.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_instrset.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_instrset.h
@@ -0,0 +1,441 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: October, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_INSTRSET_H
+#define PATS_CCOMP_INSTRSET_H
+
+/* ****** ****** */
+//
+// HX: boolean values
+//
+#define atsbool_true 1
+#define atsbool_false 0
+//
+/* ****** ****** */
+
+#define ATStysum() struct{ int contag; }
+#define ATStyexn() struct{ int exntag; char *exnmsg; }
+#define ATStylist(tyelt) struct{ tyelt head; void *tail; }
+#define ATStyclo() struct{ void *cfun; }
+
+/* ****** ****** */
+//
+// HX: for supporting lazy-evaluation
+//
+#define \
+ATStylazy(tyval) \
+  struct{ int flag; union{ void* thunk; tyval saved; } lazy; }
+//
+/* ****** ****** */
+
+#define ATSif(x) if(x)
+#define ATSthen()
+#define ATSelse() else
+
+/* ****** ****** */
+
+#define ATSifthen(x) if(x)
+#define ATSifnthen(x) if(!(x))
+
+/* ****** ****** */
+
+#define ATSdo() do
+#define ATSwhile(x) while(x)
+#define ATSbreak() break
+#define ATScontinue() continue
+
+/* ****** ****** */
+//
+// HX: handling for/while loops
+//
+#define \
+ATSloop_open(init, fini, cont) \
+  do { init:
+#define \
+ATSloop_close(init, fini, cont) \
+  goto init ; fini: break ; } while(0)
+//
+#define ATSbreak2(fini) goto fini
+#define ATScontinue2(cont) goto cont
+//
+/* ****** ****** */
+
+#define ATSreturn(x) return(x)
+#define ATSreturn_void(x) return
+
+/* ****** ****** */
+
+#define ATSFCreturn(x) return(x)
+#define ATSFCreturn_void(x) (x); return
+
+/* ****** ****** */
+//
+#define ATSbranch_beg()
+#define ATSbranch_end() break ;
+//
+#define ATScaseof_beg() do {
+#define ATScaseof_end() } while(0) ;
+//
+/* ****** ****** */
+
+#define ATSextcode_beg()
+#define ATSextcode_end()
+
+/* ****** ****** */
+
+#define ATSfunbody_beg()
+#define ATSfunbody_end()
+
+/* ****** ****** */
+
+#define ATSPMVint(i) i
+#define ATSPMVintrep(rep) (rep)
+
+#define ATSPMVbool_true() atsbool_true
+#define ATSPMVbool_false() atsbool_false
+#define ATSPMVchar(c) (c)
+#define ATSPMVfloat(rep) (rep)
+#define ATSPMVstring(str) (str)
+
+#define ATSPMVi0nt(tok) (tok)
+#define ATSPMVf0loat(tok) (tok)
+
+/* ****** ****** */
+
+#define ATSCSTSPmyfil(info) info
+#define ATSCSTSPmyloc(info) info
+
+/* ****** ****** */
+//
+#define ATSPMVtop() atserror_top
+//
+#define ATSPMVempty() /*empty*/
+#define ATSPMVextval(name) (name)
+//
+/* ****** ****** */
+
+#define ATSPMVptrof(lval) (&(lval))
+#define ATSPMVptrof_void(lval) ((void*)0)
+
+/* ****** ****** */
+
+#define ATSPMVrefarg0(val) (val)
+#define ATSPMVrefarg1(ref) (ref)
+
+/* ****** ****** */
+
+#define ATSPMVvararg0() 0
+#define ATSPMVvararg1(...) __VA_ARGS__
+  
+/* ****** ****** */
+
+#define ATSPMVtyrep(rep) (rep)
+
+/* ****** ****** */
+
+#define ATSPMVsizeof(hit) (sizeof(hit))
+
+/* ****** ****** */
+//
+#define ATSPMVfunlab(flab) (flab)
+//
+// HX-2015-07-06: not yet in use:
+//
+#define ATSPMVfunlab2(flab, arity) (flab)
+//
+/* ****** ****** */
+
+#define ATSPMVcfunlab(knd, flab, env) (flab##__closurerize)env
+
+/* ****** ****** */
+
+//
+// HX: castfn application
+//
+#define ATSPMVcastfn(d2c, hit, arg) ((hit)arg)
+//
+/* ****** ****** */
+
+#define ATSfuncall(fun, funarg) (fun)funarg
+
+/* ****** ****** */
+//
+#define ATSextfcall(fun, funarg) (fun)funarg
+#define ATSextmcall(obj, mtd, funarg) (obj->mtd)funarg
+//
+/* ****** ****** */
+//
+#define \
+ATSfunclo_fun(pmv, targs, tres) ((tres(*)targs)(pmv))
+#define \
+ATSfunclo_clo(pmv, targs, tres) ((tres(*)targs)(((ATStyclo()*)pmv)->cfun))
+//
+/* ****** ****** */
+//
+#define ATStmpdec(tmp, hit) hit tmp
+#define ATStmpdec_void(tmp)
+//
+#define ATSstatmpdec(tmp, hit) static hit tmp
+#define ATSstatmpdec_void(tmp)
+//
+/* ****** ****** */
+
+#define ATSderef(pmv, hit) (*(hit*)pmv)
+
+/* ****** ****** */
+//
+// HX: [ATSSELcon] is the same as [ATSSELboxrec]
+//
+#define ATSSELcon(pmv, tysum, lab) (((tysum*)pmv)->lab)
+//
+#define ATSSELrecsin(pmv, tyrec, lab) (pmv)
+#define ATSSELfltrec(pmv, tyrec, lab) ((pmv).lab)
+#define ATSSELboxrec(pmv, tyrec, lab) (((tyrec*)pmv)->lab)
+#define ATSSELarrind(pmv, tyarr, lab) (((tyarr)pmv).lab)
+#define ATSSELarrptrind(pmv, tyelt, lab) (((tyelt*)pmv)lab)
+//
+/* ****** ****** */
+//
+#define ATSCKnot(x) ((x)==0)
+//
+#define ATSCKiseqz(x) ((x)==0)
+#define ATSCKisneqz(x) ((x)!=0)
+//
+#define ATSCKptriscons(x) (0 != (void*)(x))
+#define ATSCKptrisnull(x) (0 == (void*)(x))
+//
+/* ****** ****** */
+//
+#define ATSCKpat_int(pmv, pat) ((pmv)==pat)
+#define ATSCKpat_bool(pmv, pat) ((pmv)==pat)
+#define ATSCKpat_char(pmv, pat) ((pmv)==pat)
+#define ATSCKpat_float(pmv, pat) ((pmv)==pat)
+#define ATSCKpat_string(pmv, pat) (atspre_string_equal(pmv, pat))
+//
+/*
+** a datatype should not contain more than 1024 constructors!
+*/
+#define ATS_DATACONMAX 1024
+//
+#define ATSCKpat_con0(pmv, tag) ((pmv)==(void*)tag)
+#define ATSCKpat_con1(pmv, tag) \
+  ((pmv)>=(void*)ATS_DATACONMAX && ((ATStysum()*)(pmv))->contag==tag)
+//
+#define ATSCKpat_exn0(pmv, d2con) ((pmv)==(void*)(&(d2con)))
+#define ATSCKpat_exn1(pmv, d2con) (((ATStyexn()*)(pmv))->exntag==(&(d2con))->exntag)
+//
+/* ****** ****** */
+//
+#define ATSINSlab(lab) lab
+#define ATSINSgoto(lab) goto lab
+//
+#define ATSINSflab(flab) flab
+#define ATSINSfgoto(flab) goto flab
+//
+/* ****** ****** */
+
+#define ATSINSfreeclo(cloptr) ATS_MFREE(cloptr)
+#define ATSINSfreecon(datconptr) ATS_MFREE(datconptr)
+
+/* ****** ****** */
+
+#define ATSINSmove(tmp, val) (tmp = val)
+#define ATSINSpmove(tmp, hit, val) (*(hit*)tmp = val)
+
+/* ****** ****** */
+/*
+** HX-2013-01-20:
+** Do not have parentheses around [command]
+*/
+#define ATSINSmove_void(tmp, command) command
+#define ATSINSpmove_void(tmp, hit, command) command
+
+/* ****** ****** */
+
+#define ATSINSmove_ptralloc(tmp, hit) (tmp = ATS_MALLOC(sizeof(hit)))
+
+/* ****** ****** */
+//
+#define \
+ATSINSmove_nil(tmp) (tmp = ((void*)0))
+//
+#define \
+ATSINSmove_con0(tmp, tag) (tmp = ((void*)tag))
+//
+#define ATSINSmove_con1_beg()
+#define ATSINSmove_con1_end()
+#define ATSINSmove_con1_new(tmp, tysum) (tmp = ATS_MALLOC(sizeof(tysum)))
+#define ATSINSstore_con1_tag(tmp, val) (((ATStysum()*)(tmp))->contag = val)
+#define ATSINSstore_con1_ofs(tmp, tysum, lab, val) (((tysum*)(tmp))->lab = val)
+//
+/* ****** ****** */
+//
+#define ATSINSmove_exn0(tmp, d2con) (tmp = &(d2con))
+//
+#define ATSINSmove_exn1_beg()
+#define ATSINSmove_exn1_end()
+#define ATSINSmove_exn1_new(tmp, tyexn) (tmp = ATS_MALLOC(sizeof(tyexn)))
+#define ATSINSstore_exn1_tag(tmp, d2con) (((ATStyexn()*)tmp)->exntag = (&(d2con))->exntag)
+#define ATSINSstore_exn1_msg(tmp, d2con) (((ATStyexn()*)tmp)->exnmsg = (&(d2con))->exnmsg)
+//
+/* ****** ****** */
+//
+#define ATStailcal_beg() do {
+#define ATStailcal_end() } while(0) ;
+//
+#define ATSINSmove_tlcal(apy, tmp) (apy = tmp)
+#define ATSINSargmove_tlcal(arg, apy) (arg = apy)
+//
+/* ****** ****** */
+
+#define ATSINSmove_fltrec_beg()
+#define ATSINSmove_fltrec_end()
+#define ATSINSstore_fltrec_ofs(tmp, tyrec, lab, val) ((tmp).lab = val)
+
+/* ****** ****** */
+
+#define ATSINSmove_boxrec_beg()
+#define ATSINSmove_boxrec_end()
+#define ATSINSmove_boxrec_new(tmp, tyrec) (tmp = ATS_MALLOC(sizeof(tyrec)))
+#define ATSINSstore_boxrec_ofs(tmp, tyrec, lab, val) (((tyrec*)(tmp))->lab = val)
+
+/* ****** ****** */
+
+#define ATSINSload(tmp, pmv) (tmp = pmv)
+#define ATSINSstore(pmv1, pmv2) (pmv1 = pmv2)
+#define ATSINSxstore(tmp, pmv1, pmv2) (tmp = pmv1, pmv1 = pmv2, pmv2 = tmp)
+
+/* ****** ****** */
+//
+#define ATSINSmove_list_nil(tmp) (tmp = (void*)0)
+#define ATSINSmove_list_phead(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->head))
+#define ATSINSmove_list_ptail(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->tail))
+#define ATSINSpmove_list_nil(tmp) (*(void**)tmp = (void*)0)
+#define ATSINSpmove_list_cons(tmp, tyelt) (*(void**)tmp = ATS_MALLOC(sizeof(ATStylist(tyelt))))
+//
+/* ****** ****** */
+//
+#define ATSINSstore_arrpsz_asz(tmp, asz) ((tmp).size = asz)
+#define ATSINSstore_arrpsz_ptr(tmp, tyelt, asz) ((tmp).ptr = ATS_MALLOC(asz*sizeof(tyelt)))
+//
+#define ATSINSmove_arrpsz_ptr(tmp, psz) (tmp = (psz).ptr)
+//
+#define ATSINSupdate_ptrinc(tmp, tyelt) (tmp = (tyelt*)(tmp) + 1)
+#define ATSINSupdate_ptrdec(tmp, tyelt) (tmp = (tyelt*)(tmp) - 1)
+//
+/* ****** ****** */
+
+#define ATSINSextvar_assign(var, pmv) var = (pmv)
+#define ATSINSdyncst_valbind(d2cst, pmv) d2cst = (pmv)
+
+/* ****** ****** */
+
+#define ATSINSclosure_initize(flab, tmpenv) (flab##__closureinit)tmpenv
+
+/* ****** ****** */
+//
+#define ATSINSraise_exn(tmp, pmv) atsruntime_raise(pmv)
+//
+/* ****** ****** */
+//
+#define ATSINScaseof_fail(msg) atsruntime_handle_unmatchedval(msg)
+#define ATSINSfunarg_fail(msg) atsruntime_handle_unmatchedarg(msg)
+//
+/* ****** ****** */
+
+#define \
+ATSINSmove_delay(tmpret, tyval, pmv_thk) \
+do { \
+  tmpret = \
+    ATS_MALLOC(sizeof(ATStylazy(tyval))) ; \
+  (*(ATStylazy(tyval)*)tmpret).flag = 0 ; \
+  (*(ATStylazy(tyval)*)tmpret).lazy.thunk = pmv_thk ; \
+} while(0) ; /* end of [do ... while ...] */
+
+#define \
+ATSINSmove_lazyeval(tmpret, tyval, pmv_lazy) \
+do { \
+  if ( \
+    (*(ATStylazy(tyval)*)pmv_lazy).flag==0 \
+  ) { \
+    (*(ATStylazy(tyval)*)pmv_lazy).flag += 1 ; \
+    atstype_cloptr __thunk = (*(ATStylazy(tyval)*)pmv_lazy).lazy.thunk ; \
+    tmpret = ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr), tyval), (__thunk)) ; \
+    (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved = tmpret ; \
+  } else { \
+    tmpret = (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved ; \
+  } /* end of [if] */ \
+} while(0) /* end of [do ... while ...] */
+
+/* ****** ****** */
+
+#define \
+ATSINSmove_ldelay(tmpret, tyval, __thunk) \
+do { \
+  ATSINSmove(tmpret, __thunk) ; \
+} while(0) /* end of [do ... while ...] */
+
+#define \
+ATSINSmove_llazyeval(tmpret, tyval, __thunk) \
+do { \
+  tmpret = \
+  ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), tyval), (__thunk, atsbool_true)) ; \
+  ATS_MFREE(__thunk) ; \
+} while(0) /* end of [do ... while ...] */
+
+/* ****** ****** */
+
+#define \
+atspre_lazy_vt_free(__thunk) \
+do { \
+  ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), void), (__thunk, atsbool_false)) ; \
+  ATS_MFREE(__thunk) ; \
+} while(0) /* atspre_lazy_vt_free */
+
+/* ****** ****** */
+//
+// HX-2014-10:
+//
+#define atspre_lazy2cloref(pmv_lazy) ((*(ATStylazy(atstype_ptr)*)pmv_lazy).lazy.thunk)
+//
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_INSTRSET_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_instrset.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc.h
@@ -0,0 +1,132 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: October, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_MEMALLOC_H
+#define PATS_CCOMP_MEMALLOC_H
+
+/* ****** ****** */
+//
+// HX: for size_t
+//
+#include <stddef.h>
+//
+/* ****** ****** */
+//
+extern
+void atsruntime_mfree_undef (void *ptr) ;
+//
+extern
+void *atsruntime_malloc_undef (size_t bsz) ;
+extern
+void *atsruntime_calloc_undef (size_t asz, size_t tsz) ;
+extern
+void *atsruntime_realloc_undef (void *ptr, size_t bsz) ;
+//
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_FLAG
+#undef ATS_MEMALLOC_FLAG
+#endif // ifdef(ATS_MEMALLOC_FLAG)
+
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_LIBC
+//
+#define ATS_MEMALLOC_FLAG
+//
+#include "pats_ccomp_memalloc_libc.h"
+//
+#define ATS_MINIT atsruntime_minit_libc
+#define ATS_MFREE atsruntime_mfree_libc
+#define ATS_MALLOC atsruntime_malloc_libc_exn
+#define ATS_CALLOC atsruntime_calloc_libc_exn
+#define ATS_REALLOC atsruntime_realloc_libc_exn
+//
+#endif // end of [ATS_MEMALLOC_LIBC]
+
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_GCBDW
+//
+#define ATS_MEMALLOC_FLAG
+//
+#include "pats_ccomp_memalloc_gcbdw.h"
+//
+#define ATS_MINIT atsruntime_minit_gcbdw
+#define ATS_MFREE atsruntime_mfree_gcbdw
+#define ATS_MALLOC atsruntime_malloc_gcbdw_exn
+#define ATS_CALLOC atsruntime_calloc_gcbdw_exn
+#define ATS_REALLOC atsruntime_realloc_gcbdw_exn
+//
+#endif // end of [ATS_MEMALLOC_GCBDW]
+
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_USER
+//
+#define ATS_MEMALLOC_FLAG
+//
+#include "pats_ccomp_memalloc_user.h"
+//
+#define ATS_MINIT atsruntime_minit_user
+#define ATS_MFREE atsruntime_mfree_user
+#define ATS_MALLOC atsruntime_malloc_user
+#define ATS_CALLOC atsruntime_calloc_user
+#define ATS_REALLOC atsruntime_realloc_user
+//
+#endif // end of [ATS_MEMALLOC_USER]
+
+/* ****** ****** */
+
+#ifndef ATS_MEMALLOC_FLAG
+#define ATS_MEMALLOC_FLAG
+//
+#define ATS_MINIT atsruntime_minit_undef
+#define ATS_MFREE atsruntime_mfree_undef
+#define ATS_MALLOC atsruntime_malloc_undef
+#define ATS_CALLOC atsruntime_calloc_undef
+#define ATS_REALLOC atsruntime_realloc_undef
+//
+#endif // end of [ATS_MEMALLOC_FLAG]
+
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_MEMALLOC_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloc.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_gcbdw.h
@@ -0,0 +1,146 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: March, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include <stdio.h>
+/*
+extern
+int fprintf (FILE *stream, const char *format, ...) ;
+*/
+/* ****** ****** */
+/*
+#include <stdlib.h>
+*/
+extern void exit (int code) ; 
+
+/* ****** ****** */
+/*
+#include <gc.h>
+*/
+extern void GC_init () ;
+extern void GC_free (void *ptr) ;
+extern void *GC_malloc(size_t bsz) ;
+extern void *GC_realloc(void *ptr, size_t bsz) ;
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atsruntime_minit_gcbdw
+  (/*void*/) { GC_init() ; return ; }
+// end of [atsruntime_minit_gcbdw]
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atsruntime_mfree_gcbdw
+  (void *ptr) { GC_free(ptr) ; return ; }
+// end of [atsruntime_mfree_gcbdw]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_malloc_gcbdw
+  (size_t bsz) { return GC_malloc(bsz) ; }
+// end of [atsruntime_malloc_gcbdw]
+
+ATSinline()
+atstype_ptr
+atsruntime_malloc_gcbdw_exn
+  (size_t bsz)
+{
+  void *ptr ;
+  ptr = atsruntime_malloc_gcbdw(bsz) ;
+  if (!ptr)
+  {
+    fprintf(
+      stderr, "exit(ATS): atsruntime_malloc_gcbdw_exn: [malloc] failed.\n"
+    ) ; exit(1) ;
+  } // end of [if]
+  return (ptr) ;
+} /* end of [atsruntime_malloc_gcbdw_exn] */
+
+/* ****** ****** */
+//
+// HX:
+// [GC_malloc] already
+// clears the allocated region!
+//
+ATSinline()
+atstype_ptr
+atsruntime_calloc_gcbdw
+  (size_t asz, size_t tsz)
+{
+  return atsruntime_malloc_gcbdw (asz*tsz) ;
+} // end of [atsruntime_calloc_gcbdw]
+
+ATSinline()
+atstype_ptr
+atsruntime_calloc_gcbdw_exn
+  (size_t asz, size_t tsz)
+{
+  return atsruntime_malloc_gcbdw_exn (asz*tsz) ;
+} // end of [atsruntime_calloc_gcbdw_exn]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_realloc_gcbdw
+  (void *ptr, size_t bsz) { return GC_realloc(ptr, bsz) ; }
+// end of [atsruntime_realloc_gcbdw]
+
+ATSinline()
+atstype_ptr
+atsruntime_realloc_gcbdw_exn
+  (void *ptr, size_t bsz)
+{
+  void *ptr2 ;
+  ptr2 = atsruntime_realloc_gcbdw(ptr, bsz) ;
+  if (!ptr2)
+  {
+    fprintf(
+    stderr, "exit(ATS): atsruntime_realloc_gcbdw_exn: [realloc] failed.\n"
+    ) ; exit(1) ;
+  } // end of [if]
+  return (ptr2) ;
+} /* end of [atsruntime_realloc_gcbdw_exn] */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloc_gcbdw.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_libc.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_libc.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_libc.h
@@ -0,0 +1,140 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: March, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include <stdio.h>
+/*
+extern
+int fprintf (FILE *stream, const char *format, ...) ;
+*/
+/* ****** ****** */
+//
+// stdlib.h
+//
+extern void exit (int code) ;
+//
+extern void free (void *ptr) ;
+extern void *malloc (size_t bsz) ;
+extern void *calloc(size_t asz, size_t tsz) ;
+extern void *realloc(void *ptr, size_t bsz) ;
+//
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atsruntime_minit_libc() { return ; }
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atsruntime_mfree_libc
+  (atstype_ptr ptr) { free(ptr) ; return ; }
+// end of [atsruntime_mfree_libc]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_malloc_libc
+  (atstype_size bsz) { return malloc(bsz) ; }
+// end of [atsruntime_malloc_libc]
+
+ATSinline()
+atstype_ptr
+atsruntime_malloc_libc_exn
+  (atstype_size bsz)
+{
+  atstype_ptr p ;
+  p = atsruntime_malloc_libc(bsz) ;
+  if (!p) {
+    fprintf(stderr, "exit(ATS): atsruntime_malloc_libc_exn: [malloc] failed.\n") ;
+    exit(1) ;
+  } // end of [if]
+  return (p) ;
+} /* end of [atsruntime_malloc_libc_exn] */
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_calloc_libc
+  (atstype_size asz, atstype_size tsz) { return calloc(asz, tsz) ; }
+// end of [atsruntime_calloc_libc]
+
+ATSinline()
+atstype_ptr
+atsruntime_calloc_libc_exn
+(
+  atstype_size asz, atstype_size tsz
+)
+{
+  atstype_ptr p ;
+  p = atsruntime_calloc_libc(asz, tsz) ;
+  if (!p) {
+    fprintf(stderr, "exit(ATS): atsruntime_calloc_libc_exn: [calloc] failed.\n") ;
+    exit(1) ;
+  } // end of [if]
+  return (p) ;
+} /* end of [atsruntime_calloc_libc_exn] */
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_realloc_libc
+  (atstype_ptr ptr, atstype_size bsz) { return realloc(ptr, bsz) ; }
+// end of [atsruntime_realloc_libc]
+
+ATSinline()
+atstype_ptr
+atsruntime_realloc_libc_exn
+(
+  atstype_ptr ptr, atstype_size bsz
+)
+{
+  atstype_ptr p ;
+  p = atsruntime_realloc_libc(ptr, bsz) ;
+  if (!p) {
+    fprintf(stderr, "exit(ATS): atsruntime_realloc_libc_exn: [realloc] failed.\n") ;
+    exit(1) ;
+  } // end of [if]
+  return (p) ;
+} /* end of [atsruntime_realloc_libc_exn] */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloc_libc.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user.h
@@ -0,0 +1,74 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: March, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include <stdio.h>
+/*
+extern
+int fprintf (FILE *stream, const char *format, ...) ;
+*/
+/* ****** ****** */
+//
+// stdlib.h
+//
+extern void exit (int code) ;
+//
+/* ****** ****** */
+
+extern void atsruntime_mfree_user (void *ptr) ;
+extern void *atsruntime_malloc_user (size_t bsz) ;
+extern void *atsruntime_calloc_user (size_t asz, size_t tsz) ;
+extern void *atsruntime_realloc_user (void *ptr, size_t bsz) ;
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atsruntime_malloc_user_exn
+  (atstype_size bsz)
+{
+  atstype_ptr p ;
+  p = atsruntime_malloc_user(bsz) ;
+  if (!p) {
+    fprintf(stderr, "exit(ATS): atsruntime_malloc_user_exn: [malloc] failed.\n") ;
+    exit(1) ;
+  } // end of [if]
+  return (p) ;
+} /* end of [atsruntime_malloc_user_exn] */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloc_user.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user2.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user2.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloc_user2.h
@@ -0,0 +1,58 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: March, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include <stdio.h>
+/*
+extern
+int fprintf (FILE *stream, const char *format, ...) ;
+*/
+/* ****** ****** */
+//
+// stdlib.h
+//
+extern void exit (int code) ;
+//
+/* ****** ****** */
+
+extern void atsruntime_mfree_user2 (void *ptr) ;
+extern void *atsruntime_malloc_user2 (size_t bsz) ;
+extern void *atsruntime_calloc_user2 (size_t asz, size_t tsz) ;
+extern void *atsruntime_realloc_user2 (void *ptr, size_t bsz) ;
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloc_user2.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloca.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloca.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_memalloca.h
@@ -0,0 +1,69 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_MEMALLOCA_H
+#define PATS_CCOMP_MEMALLOCA_H
+
+/* ****** ****** */
+//
+// alloca.h
+//
+extern void *alloca (size_t bsz) ;
+//
+/* ****** ****** */
+//
+// HX: [afree] matches [alloca]
+//
+ATSinline()
+atsvoid_t0ype
+atsruntime_afree_libc
+  (atstype_ptr ptr) { return ; }
+// end of [atsruntime_afree_libc]
+
+ATSinline()
+atstype_ptr
+atsruntime_alloca_libc
+  (atstype_size bsz) { return alloca(bsz) ; }
+// end of [atsruntime_alloca_libc]
+
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_MEMALLOCA_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_memalloca.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime.c b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime.c
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime.c
@@ -0,0 +1,166 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: April, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include <stdio.h>
+//
+extern void exit (int) ; // in [stdlib.h]
+//
+/* ****** ****** */
+
+#include "pats_ccomp_basics.h"
+#include "pats_ccomp_typedefs.h"
+
+/* ****** ****** */
+//
+// HX-2013-04: some pre-initialized exceptions
+//
+/* ****** ****** */
+
+#ifndef \
+_ATS_CCOMP_EXCEPTION_NONE_
+//
+atstype_exncon
+ATSLIB_056_prelude__AssertExn = { 10, "AssertException" } ;
+atstype_exncon
+ATSLIB_056_prelude__GenerallyExn = { 20, "GenerallyException" } ;
+atstype_exncon
+ATSLIB_056_prelude__IllegalArgExn = { 30, "IllegalArgException" } ;
+//
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+
+/* ****** ****** */
+
+#ifndef \
+_ATS_CCOMP_EXCEPTION_NONE_
+//
+atstype_exncon
+ATSLIB_056_prelude__NotSomeExn = { 40, "NotSomeException" } ;
+atstype_exncon
+ATSLIB_056_prelude__NotFoundExn = { 41, "NotFoundException" } ;
+//
+atstype_exncon
+ATSLIB_056_prelude__ListSubscriptExn = { 50, "ListSubscriptException" } ;
+atstype_exncon
+ATSLIB_056_prelude__StreamSubscriptExn = { 51, "StreamSubscriptException" } ;
+//
+atstype_exncon
+ATSLIB_056_prelude__ArraySubscriptExn = { 60, "ArraySubscriptException" } ;
+atstype_exncon
+ATSLIB_056_prelude__MatrixSubscriptExn = { 61, "MatrixSubscriptException" } ;
+//
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+
+/* ****** ****** */
+
+#ifndef \
+_ATS_CCOMP_EXCEPTION_NONE_
+//
+extern
+void
+the_atsexncon_initize
+(
+  atstype_exncon *d2c, char* exnmsg
+)
+{
+//
+  static int the_atsexntag = 1024 ;
+//
+  if (!d2c->exntag)
+  {
+    d2c->exntag = the_atsexntag ;
+    the_atsexntag = the_atsexntag + 1 ;
+  }
+  d2c->exnmsg = exnmsg ;
+  return ;
+} // end of [the_atsexncon_initize]
+//
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+
+/* ****** ****** */
+//
+// HX-2013:
+// for reporting pattern matching failure
+//
+extern
+void
+atsruntime_handle_unmatchedval
+  (char *msg0)
+{
+  fprintf
+  ( stderr
+  , "exit(ATS): unmatched value at run-time:\n%s\n", msg0
+  ) ; exit(1) ;
+  return ; // deadcode
+} /* end of [atsruntime_handle_unmatchedval] */
+//
+/* ****** ****** */
+//
+// HX-2014-06:
+// for reporting funarg-pattern matching failure
+//
+extern
+void
+atsruntime_handle_unmatchedarg
+  (char *msg0)
+{
+  fprintf
+  ( stderr
+  , "exit(ATS): unmatched funarg at run-time:\n%s\n", msg0
+  ) ; exit(1) ;
+  return ; // deadcode
+} /* end of [atsruntime_handle_unmatchedarg] */
+//
+/* ****** ****** */
+//
+// HX-2014-06:
+// for reporting failure due to uncaught exception
+//
+extern
+void
+atsruntime_handle_uncaughtexn_rest
+  (atstype_exncon *exn0)
+{
+  fprintf
+  ( stderr
+  , "exit(ATS): uncaught exception at run-time:\n%s(%d)\n", exn0->exnmsg, exn0->exntag
+  ) ; exit(1) ;
+  return ; // deadcode
+} /* end of [atsruntime_handle_uncaughtexn_rest] */
+//
+/* ****** ****** */
+
+/* end of [pats_ccomp_runtime.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime2_dats.c b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime2_dats.c
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime2_dats.c
@@ -0,0 +1,390 @@
+/*
+**
+** The C code is generated by ATS/Postiats
+** The compilation time is: 2014-8-4: 12h:36m
+**
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+typedef
+ATSstruct {
+int exntag ;
+char *exnmsg ;
+atstkind_type(atstype_ptrk) atslab__0; 
+} pats_ccomp_runtime2_tyexn ;
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_prerr_string)
+ATSdyncst_mac(atspre_prerr_newline)
+ATSdyncst_mac(atspre_exit)
+ATSdyncst_extfun(atsruntime_handle_uncaughtexn_rest, (atstype_exnconptr), atsvoid_t0ype) ;
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+/*
+assumelst-declaration(beg)
+*/
+/*
+assumelst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+
+/* ****** ****** */
+
+/*
+/home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1541(line=43, offs=3) -- 2287(line=72, offs=4)
+*/
+/*
+local: 
+global: atsruntime_handle_uncaughtexn$0$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atsvoid_t0ype
+atsruntime_handle_uncaughtexn(void *arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec_void(tmpret0) ;
+ATStmpdec(tmp1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec_void(tmp3) ;
+ATStmpdec_void(tmp4) ;
+ATStmpdec_void(tmp5) ;
+ATStmpdec_void(tmp6) ;
+ATStmpdec_void(tmp7) ;
+ATStmpdec_void(tmp8) ;
+ATStmpdec_void(tmp9) ;
+ATStmpdec_void(tmp10) ;
+ATStmpdec_void(tmp11) ;
+ATStmpdec_void(tmp12) ;
+ATStmpdec_void(tmp13) ;
+ATStmpdec_void(tmp14) ;
+ATStmpdec_void(tmp15) ;
+ATStmpdec_void(tmp16) ;
+/* tmpvardeclst(end) */
+/* funbodyinstrlst(beg) */
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1509(line=42, offs=1) -- 2287(line=72, offs=4)
+*/
+ATSINSflab(__patsflab_atsruntime_handle_uncaughtexn):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1641(line=51, offs=1) -- 2280(line=70, offs=65)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1659(line=53, offs=3) -- 1672(line=53, offs=16)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
+*/
+ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__AssertExn)) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1672(line=53, offs=16) -- 1672(line=53, offs=16)
+*/
+ATSINSlab(__atstmplab1):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1693(line=54, offs=14) -- 1706(line=54, offs=27)
+*/
+ATSINSmove_void(tmp3, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38)
+*/
+ATSINSmove_void(tmp4, atspre_prerr_string(ATSPMVstring(": AssertExn"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38)
+*/
+ATSINSmove_void(tmp5, atspre_prerr_newline()) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1748(line=55, offs=42) -- 1754(line=55, offs=48)
+*/
+ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1788(line=57, offs=3) -- 1803(line=57, offs=18)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
+*/
+ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__NotFoundExn)) { ATSINSgoto(__atstmplab4) ; } ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1803(line=57, offs=18) -- 1803(line=57, offs=18)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1824(line=58, offs=14) -- 1837(line=58, offs=27)
+*/
+ATSINSmove_void(tmp6, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40)
+*/
+ATSINSmove_void(tmp7, atspre_prerr_string(ATSPMVstring(": NotFoundExn"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40)
+*/
+ATSINSmove_void(tmp8, atspre_prerr_newline()) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1881(line=59, offs=44) -- 1887(line=59, offs=50)
+*/
+ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 1940(line=61, offs=22)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
+*/
+ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__GenerallyExn)) { ATSINSgoto(__atstmplab6) ; } ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1940(line=61, offs=22) -- 1940(line=61, offs=22)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1936(line=61, offs=18) -- 1939(line=61, offs=21)
+*/
+ATSINSmove(tmp1, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 2039(line=64, offs=6)
+*/
+/*
+ATSINSfreecon(arg0) ;
+*/
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1961(line=62, offs=14) -- 1974(line=62, offs=27)
+*/
+ATSINSmove_void(tmp9, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
+*/
+ATSINSmove_void(tmp10, atspre_prerr_string(ATSPMVstring(": GenerallyExn: "))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
+*/
+ATSINSmove_void(tmp11, atspre_prerr_string(tmp1)) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48)
+*/
+ATSINSmove_void(tmp12, atspre_prerr_newline()) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2026(line=63, offs=52) -- 2032(line=63, offs=58)
+*/
+ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2086(line=65, offs=23)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7)
+*/
+ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__IllegalArgExn)) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2086(line=65, offs=23) -- 2086(line=65, offs=23)
+*/
+ATSINSlab(__atstmplab7):
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2082(line=65, offs=19) -- 2085(line=65, offs=22)
+*/
+ATSINSmove(tmp2, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ;
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2186(line=68, offs=6)
+*/
+/*
+ATSINSfreecon(arg0) ;
+*/
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2107(line=66, offs=14) -- 2120(line=66, offs=27)
+*/
+ATSINSmove_void(tmp13, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
+*/
+ATSINSmove_void(tmp14, atspre_prerr_string(ATSPMVstring(": IllegalArgExn: "))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
+*/
+ATSINSmove_void(tmp15, atspre_prerr_string(tmp2)) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49)
+*/
+ATSINSmove_void(tmp16, atspre_prerr_newline()) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2173(line=67, offs=53) -- 2179(line=67, offs=59)
+*/
+ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2219(line=70, offs=4) -- 2219(line=70, offs=4)
+*/
+ATSINSlab(__atstmplab8):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2240(line=70, offs=25) -- 2279(line=70, offs=64)
+*/
+ATSINSmove_void(tmpret0, atsruntime_handle_uncaughtexn_rest(arg0)) ;
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/* funbodyinstrlst(end) */
+ATSreturn_void(tmpret0) ;
+} /* end of [atsruntime_handle_uncaughtexn] */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_runtime2_dats.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_memalloc.c b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_memalloc.c
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_memalloc.c
@@ -0,0 +1,104 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: April, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_LIBC
+
+extern
+void
+atsruntime_mfree_undef (void *ptr)
+{
+ atsruntime_mfree_libc (ptr) ; return ;
+}
+extern
+void
+*atsruntime_malloc_undef (size_t bsz)
+{
+ return atsruntime_malloc_libc (bsz) ;
+}
+extern
+void
+*atsruntime_calloc_undef
+  (size_t asz, size_t tsz)
+{
+ return atsruntime_calloc_libc (asz, tsz) ;
+}
+extern
+void
+*atsruntime_realloc_undef
+   (void *ptr, size_t bsz)
+{
+ return atsruntime_realloc_libc (ptr, bsz) ;
+}
+
+#endif // ATS_MEMALLOC_LIBC
+
+/* ****** ****** */
+
+#ifdef ATS_MEMALLOC_GCBDW
+
+extern
+void
+atsruntime_mfree_undef (void *ptr)
+{
+ atsruntime_mfree_gcbdw (ptr) ; return ;
+}
+extern
+void
+*atsruntime_malloc_undef (size_t bsz)
+{
+ return atsruntime_malloc_gcbdw (bsz) ;
+}
+extern
+void
+*atsruntime_calloc_undef
+  (size_t asz, size_t tsz)
+{
+ return atsruntime_calloc_gcbdw (asz, tsz) ;
+}
+extern
+void
+*atsruntime_realloc_undef
+   (void *ptr, size_t bsz)
+{
+ return atsruntime_realloc_gcbdw (ptr, bsz) ;
+}
+
+#endif // ATS_MEMALLOC_GCBDW
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_runtime_memalloc.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_trywith.c b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_trywith.c
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_runtime_trywith.c
@@ -0,0 +1,86 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: April, 2013 *)
+*/
+
+/* ****** ****** */
+//
+#include "pats_ccomp_basics.h"
+#include "pats_ccomp_typedefs.h"
+#include "pats_ccomp_exception.h"
+//
+/* ****** ****** */
+//
+// HX-2013-06:
+// it is only for single-threaded programs
+//
+/* ****** ****** */
+
+extern
+atsexnframe_ptr
+*my_atsexnframe_getref ()
+{
+//
+static
+atsexnframe_t *my_atsexnframe = (void*)0 ;
+//
+return &(my_atsexnframe) ;
+//
+} // end of [my_atsexnframe_getref]
+
+/* ****** ****** */
+
+extern
+void
+atsruntime_raise
+  (void *exn0)
+{
+//
+  atsexnframe_t *frame ;
+  frame = *(my_atsexnframe_getref()) ;
+//
+  do {
+    if (!frame) break ;
+    (frame)->exn = (atstype_exnconptr)exn0 ;
+    atspre_longjmp((frame)->env, 1/*retval*/) ;
+  } while (0) ; // end of [do]
+//
+  atsruntime_handle_uncaughtexn(exn0) ;
+//
+  return ;
+//
+} /* end of [atsruntime_raise] */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_runtime_trywith.c] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_typedefs.h b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_typedefs.h
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/pats_ccomp_typedefs.h
@@ -0,0 +1,225 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         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: October, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_TYPEDEFS_H
+#define PATS_CCOMP_TYPEDEFS_H
+
+/* ****** ****** */
+
+/*
+** HX:
+** of indefinite size
+*/
+struct atstype_struct ;
+
+/* ****** ****** */
+
+typedef void atstype_void ;
+typedef void atsvoid_t0ype ;
+
+/* ****** ****** */
+
+typedef int atstype_int ;
+typedef unsigned int atstype_uint ;
+
+typedef long int atstype_lint ;
+typedef unsigned long int atstype_ulint ;
+
+typedef long long int atstype_llint ;
+typedef unsigned long long int atstype_ullint ;
+
+typedef short int atstype_sint ;
+typedef unsigned short int atstype_usint ;
+
+/* ****** ****** */
+
+typedef atstype_lint atstype_ssize ;
+typedef atstype_ulint atstype_size ;
+
+/* ****** ****** */
+//
+// HX: true/false: 1/0
+//
+typedef int atstype_bool ;
+//
+/* ****** ****** */
+
+typedef unsigned char atstype_byte ;
+
+/* ****** ****** */
+
+typedef char atstype_char ;
+typedef signed char atstype_schar ;
+typedef unsigned char atstype_uchar ;
+
+/* ****** ****** */
+
+typedef char *atstype_string ;
+typedef char *atstype_stropt ;
+typedef char *atstype_strptr ;
+
+/* ****** ****** */
+
+typedef float atstype_float ;
+typedef double atstype_double ;
+typedef long double atstype_ldouble ;
+
+/* ****** ****** */
+/*
+** HX: for pointers
+*/
+typedef void *atstype_ptr ;
+typedef void *atstype_ptrk ;
+/*
+** HX: for references
+*/
+typedef void *atstype_ref ;
+/*
+** HX: for boxed values
+*/
+typedef void* atstype_boxed ;
+/*
+** HX: for [datconptr]
+*/
+typedef void* atstype_datconptr ;
+/*
+** HX: for [datcontyp]
+*/
+typedef void* atstype_datcontyp ;
+
+/* ****** ****** */
+
+#ifdef \
+_ATS_CCOMP_EXCEPTION_NONE_
+//
+// HX: should a message be issued?
+//
+#else
+//
+typedef struct
+{
+  atstype_int exntag ;
+  atstype_string exnmsg ;
+} atstype_exncon ;
+//
+typedef
+atstype_exncon *atstype_exnconptr ;
+//
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+
+/* ****** ****** */
+/*
+** HX: for pointers to arrays
+*/
+typedef void* atstype_arrptr ;
+/*
+** HX: for arrays plus size info
+*/
+typedef
+struct {
+  atstype_arrptr ptr ; atstype_size size ;
+} atstype_arrpsz ;
+
+/* ****** ****** */
+
+typedef void* atstype_funptr ;
+typedef void* atstype_cloptr ;
+
+/* ****** ****** */
+
+#define atstkind_type(tk) tk
+#define atstkind_t0ype(tk) tk
+
+/* ****** ****** */
+//
+// HX-2014-09-16:
+// making it unusable unless
+// _ATS_ARRAY_FIELD is defined
+//
+#ifdef _ATS_ARRAY_FIELD_
+#define atstyarr_field(fname) fname[]
+#else
+#define atstyarr_field(fname) atstyarr_field_undef(fname)
+#endif // end of [_ATS_ARRAY_FIELD_]
+//
+/* ****** ****** */
+//
+// HX-2014-05:
+// making it not usable!!!
+//
+#ifdef _ATSTYPE_VAR_SIZE_
+// HX: it is set by the user
+#else
+#define _ATSTYPE_VAR_SIZE_ 0X10000
+#endif // end of [#ifdef]
+//
+// HX-2014-05:
+// for 8-bit or 16-bit march,
+// _ATSTYPE_VAR_SIZE can be set to 0X100
+//
+typedef
+struct{char _[_ATSTYPE_VAR_SIZE_];} atstype_var[0] ;
+//
+/* ****** ****** */
+
+#define atstyvar_type(a) atstype_var
+
+/* ****** ****** */
+
+#define atstybox_type(hit) atstype_boxed
+
+/* ****** ****** */
+
+#define atstyclo_top struct{ void *cfun; }
+#define atstyclo_type(flab) flab##__closure_t0ype
+
+/* ****** ****** */
+
+#define atsvararg_type(hit) ...
+
+/* ****** ****** */
+
+#define atsrefarg0_type(hit) hit
+#define atsrefarg1_type(hit) atstype_ref
+
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_TYPEDEFS_H */
+
+/* ****** ****** */
+
+/* end of [pats_ccomp_typedefs.h] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/alloca.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/alloca.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/alloca.cats
@@ -0,0 +1,61 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2014 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA
+#define ATSLIB_LIBATS_LIBC_CATS_ALLOCA
+
+/* ****** ****** */
+
+#include <alloca.h>
+
+/* ****** ****** */
+//
+#define atslib_libats_libc_alloca(bsz) alloca(bsz)
+//
+/* ****** ****** */
+//
+#define atslib_libats_libc_ptr_alloca_tsz(tsz) alloca(tsz)
+//
+#define atslib_libats_libc_array_ptr_alloca_tsz(asz, tsz) alloca((asz)*(tsz))
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA
+
+/* ****** ****** */
+
+/* end of [alloca.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dirent.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dirent.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dirent.cats
@@ -0,0 +1,120 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT
+#define ATSLIB_LIBATS_LIBC_CATS_DIRENT
+
+/* ****** ****** */
+
+#include <sys/types.h>
+#include <dirent.h> // HX: after sys/types
+
+/* ****** ****** */
+
+#include "share/H/pats_atslib.h"
+
+/* ****** ****** */
+//
+typedef DIR atslib_libats_libc_DIR_type ;
+//
+typedef
+struct dirent atslib_libats_libc_dirent_type ;
+//
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_dirent_get_d_ino(ent) \
+(((atslib_libats_libc_dirent_type*)ent)->d_ino)
+#define \
+atslib_libats_libc_dirent_get_d_name(ent) \
+(((atslib_libats_libc_dirent_type*)ent)->d_name)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_direntp_get_d_name(entp) \
+(((atslib_libats_libc_dirent_type*)entp)->d_name)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_direntp_free(x) atspre_mfree_gc(x)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_alphasort alphasort
+#define atslib_libats_libc_versionsort versionsort
+
+/* ****** ****** */
+
+#define atslib_libats_libc_opendir opendir
+
+/* ****** ****** */
+
+#define atslib_libats_libc_closedir closedir
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_readdir readdir
+#define \
+atslib_libats_libc_readdir_r(dirp, ent, res) \
+  readdir_r((DIR*)dirp, (struct dirent*)ent, (struct dirent**)res)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_scandir(dirp, namelst, filter, compar) \
+  scandir((char*)dirp, (struct dirent***)namelst, (void*)filter, (void*)compar)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_rewinddir rewinddir
+
+/* ****** ****** */
+
+#define atslib_libats_libc_seekdir seekdir
+#define atslib_libats_libc_telldir telldir
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT
+
+/* ****** ****** */
+
+/* end of [dirent.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dlfcn.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dlfcn.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/dlfcn.cats
@@ -0,0 +1,75 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: December, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN
+#define ATSLIB_LIBATS_LIBC_CATS_DLFCN
+
+/* ****** ****** */
+
+#include <dlfcn.h>
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_dlopen dlopen
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_dlclose dlclose
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_dlerror dlerror
+
+/* ****** ****** */
+
+#define atslib_libats_libc_dlsym dlsym
+
+/* ****** ****** */
+
+#define atslib_libats_libc_dladdr dladdr
+#define atslib_libats_libc_dlvsym dlvsym
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN
+
+/* ****** ****** */
+
+/* end of [dlfcn.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/errno.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/errno.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/errno.cats
@@ -0,0 +1,85 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/libc/CATS/CODEGEN/errno.atxt
+** Time of generation: Mon Sep  5 20:36:41 2016
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO
+#define ATSLIB_LIBATS_LIBC_CATS_ERRNO
+
+/* ****** ****** */
+
+#include <errno.h>
+
+/* ****** ****** */
+
+typedef int errno_t ;
+
+/* ****** ****** */
+
+#define ENONE 0
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_the_errno_get() (errno)
+#define \
+atslib_libats_libc_the_errno_set(x) (errno = (x))
+#define \
+atslib_libats_libc_the_errno_reset() (errno = ENONE)
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atslib_libats_libc_the_errno_test(errno_t x)
+{
+  return (errno==(x)) ? atsbool_true : atsbool_false ;
+} /* end of [atslib_libats_libc_the_errno_test] */
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO
+
+/* ****** ****** */
+
+/* end of [errno.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fcntl.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fcntl.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fcntl.cats
@@ -0,0 +1,85 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL
+#define ATSLIB_LIBATS_LIBC_CATS_FCNTL
+
+/* ****** ****** */
+
+#include <sys/types.h>
+#include <fcntl.h> // HX: after sys/types
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fildes_get_int(fd) (fd)
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atslib_libats_libc_fildes_isgtez
+  (atstype_int fd)
+{
+  return (fd >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_fildes_isgtez]
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_fcntlflags_lor(x1, x2) ((x1)|(x2))
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_fcntl_getfl(fd) fcntl(fd, F_GETFL)
+#define \
+atslib_libats_libc_fcntl_setfl(fd, flags) fcntl(fd, F_SETFL, flags)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_open_flags(path, flags) open((char*)path, flags)
+#define \
+atslib_libats_libc_open_flags_mode(path, flags, mode) open((char*)path, flags, mode)
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL
+
+/* ****** ****** */
+
+/* end of [fcntl.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/float.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/float.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/float.cats
@@ -0,0 +1,51 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: October, 2014 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT
+#define ATSLIB_LIBATS_LIBC_CATS_FLOAT
+
+/* ****** ****** */
+
+#include <float.h>
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT
+
+/* ****** ****** */
+
+/* end of [float.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fnmatch.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fnmatch.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/fnmatch.cats
@@ -0,0 +1,58 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH
+#define ATSLIB_LIBATS_LIBC_CATS_FNMATCH
+
+/* ****** ****** */
+
+#include <fnmatch.h>
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_fnmatch_null(pat, str) fnmatch((char*)pat, (char*)str, 0)
+#define \
+atslib_libats_libc_fnmatch_flags(pat, str, flags) fnmatch((char*)pat, (char*)str, flags)
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH
+
+/* ****** ****** */
+
+/* end of [fnmatch.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/malloc.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/malloc.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/malloc.cats
@@ -0,0 +1,60 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC
+#define ATSLIB_LIBATS_LIBC_CATS_MALLOC
+
+/* ****** ****** */
+
+#include <malloc.h>
+
+/* ****** ****** */
+
+#define atslib_libats_libc_mallopt mallopt
+#define atslib_libats_libc_malloc_trim malloc_trim
+#define atslib_libats_libc_malloc_usable_size malloc_usable_size
+#define atslib_libats_libc_malloc_stats malloc_stats
+#define atslib_libats_libc_malloc_get_state malloc_get_state
+#define atslib_libats_libc_malloc_set_state malloc_set_state
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC
+
+/* ****** ****** */
+
+/* end of [malloc.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/math.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/math.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/math.cats
@@ -0,0 +1,235 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_MATH
+#define ATSLIB_LIBATS_LIBC_CATS_MATH
+
+/* ****** ****** */
+
+#include <math.h>
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_isfinite_float isfinite
+#define \
+atslib_libats_libc_isfinite_double isfinite
+#define \
+atslib_libats_libc_isfinite_ldouble isfinite
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_isnormal_float isnormal
+#define \
+atslib_libats_libc_isnormal_double isnormal
+#define \
+atslib_libats_libc_isnormal_ldouble isnormal
+
+/* ****** ****** */
+
+#define atslib_libats_libc_isinf_float isinf
+#define atslib_libats_libc_isinf_double isinf
+#define atslib_libats_libc_isinf_ldouble isinf
+
+/* ****** ****** */
+
+#define atslib_libats_libc_isnan_float isnan
+#define atslib_libats_libc_isnan_double isnan
+#define atslib_libats_libc_isnan_ldouble isnan
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fpclassify_float fpclassify
+#define atslib_libats_libc_fpclassify_double fpclassify
+#define atslib_libats_libc_fpclassify_ldouble fpclassify
+
+/* ****** ****** */
+
+#define atslib_libats_libc_ceil_float ceilf
+#define atslib_libats_libc_ceil_double ceil
+#define atslib_libats_libc_ceil_ldouble ceill
+
+/* ****** ****** */
+
+#define atslib_libats_libc_floor_float floorf
+#define atslib_libats_libc_floor_double floor
+#define atslib_libats_libc_floor_ldouble floorl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_round_float roundf
+#define atslib_libats_libc_round_double round
+#define atslib_libats_libc_round_ldouble roundl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_trunc_float truncf
+#define atslib_libats_libc_trunc_double trunc
+#define atslib_libats_libc_trunc_ldouble truncl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fmod_float fmodf
+#define atslib_libats_libc_fmod_double fmod
+#define atslib_libats_libc_fmod_ldouble fmodl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fmax_float fmaxf
+#define atslib_libats_libc_fmax_double fmax
+#define atslib_libats_libc_fmax_ldouble fmaxl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fmin_float fminf
+#define atslib_libats_libc_fmin_double fmin
+#define atslib_libats_libc_fmin_ldouble fminl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fdim_float fdimf
+#define atslib_libats_libc_fdim_double fdim
+#define atslib_libats_libc_fdim_ldouble fdiml
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fma_float fmaf
+#define atslib_libats_libc_fma_double fma
+#define atslib_libats_libc_fma_ldouble fmal
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sqrt_float sqrtf
+#define atslib_libats_libc_sqrt_double sqrt
+#define atslib_libats_libc_sqrt_ldouble sqrtl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_cbrt_float cbrtf
+#define atslib_libats_libc_cbrt_double cbrt
+#define atslib_libats_libc_cbrt_ldouble cbrtl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_pow_float powf
+#define atslib_libats_libc_pow_double pow
+#define atslib_libats_libc_pow_ldouble powl
+
+/* ****** ****** */
+
+#define atslib_libats_libc_exp_float expf
+#define atslib_libats_libc_exp_double exp
+#define atslib_libats_libc_exp_ldouble expl
+
+/* ****** ****** */
+//
+#define atslib_libats_libc_log_float logf
+#define atslib_libats_libc_log_double log
+#define atslib_libats_libc_log_ldouble logl
+//
+#define atslib_libats_libc_log10_float log10f
+#define atslib_libats_libc_log10_double log10
+#define atslib_libats_libc_log10_ldouble log10l
+//
+/* ****** ****** */
+//
+#define atslib_libats_libc_sin_float sinf
+#define atslib_libats_libc_sin_double sin
+#define atslib_libats_libc_sin_ldouble sinl
+//
+#define atslib_libats_libc_cos_float cosf
+#define atslib_libats_libc_cos_double cos
+#define atslib_libats_libc_cos_ldouble cosl
+//
+#define atslib_libats_libc_tan_float tanf
+#define atslib_libats_libc_tan_double tan
+#define atslib_libats_libc_tan_ldouble tanl
+//
+/* ****** ****** */
+//
+#define atslib_libats_libc_asin_float asinf
+#define atslib_libats_libc_asin_double asin
+#define atslib_libats_libc_asin_ldouble asinl
+//
+#define atslib_libats_libc_acos_float acosf
+#define atslib_libats_libc_acos_double acos
+#define atslib_libats_libc_acos_ldouble cosl
+//
+#define atslib_libats_libc_atan_float atanf
+#define atslib_libats_libc_atan_double atan
+#define atslib_libats_libc_atan_ldouble atanl
+//
+#define atslib_libats_libc_atan2_float atan2f
+#define atslib_libats_libc_atan2_double atan2
+#define atslib_libats_libc_atan2_ldouble atan2l
+//
+/* ****** ****** */
+//
+#define atslib_libats_libc_sinh_float sinhf
+#define atslib_libats_libc_sinh_double sinh
+#define atslib_libats_libc_sinh_ldouble sinhl
+//
+#define atslib_libats_libc_cosh_float coshf
+#define atslib_libats_libc_cosh_double cosh
+#define atslib_libats_libc_cosh_ldouble coshl
+//
+#define atslib_libats_libc_tanh_float tanhf
+#define atslib_libats_libc_tanh_double tanh
+#define atslib_libats_libc_tanh_ldouble tanhl
+//
+/* ****** ****** */
+
+#define atslib_libats_libc_asinh_float asinhf
+#define atslib_libats_libc_asinh_double asinh
+#define atslib_libats_libc_asinh_ldouble asinhl
+//
+#define atslib_libats_libc_acosh_float acoshf
+#define atslib_libats_libc_acosh_double acosh
+#define atslib_libats_libc_acosh_ldouble acoshl
+//
+#define atslib_libats_libc_atanh_float atanhf
+#define atslib_libats_libc_atanh_double atanh
+#define atslib_libats_libc_atanh_ldouble atanhl
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MATH
+
+/* ****** ****** */
+
+/* end of [math.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/signal.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/signal.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/signal.cats
@@ -0,0 +1,125 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: April, 2014 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL
+#define ATSLIB_LIBATS_LIBC_CATS_SIGNAL
+
+/* ****** ****** */
+
+#include <signal.h>
+
+/* ****** ****** */
+//
+typedef int signum_t ;
+//
+typedef
+void (*sighandler_t)(signum_t) ;
+//
+/* ****** ****** */
+
+typedef
+struct sigaction
+atslib_libats_libc_sigaction_struct ;
+
+/* ****** ****** */
+
+#define atslib_libats_libc_signal signal
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sigaddset sigaddset
+#define atslib_libats_libc_sigdelset sigdelset
+#define atslib_libats_libc_sigemptyset sigemptyset
+#define atslib_libats_libc_sigfillset sigfillset
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_sigaction sigaction
+#define \
+atslib_libats_libc_sigaction_null(sgn, act) \
+atslib_libats_libc_sigaction(sgn, act, (atslib_libats_libc_sigaction_struct*)0)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_kill kill
+#define atslib_libats_libc_killpg killpg
+#define atslib_libats_libc_raise raise
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sigset sigset
+#define atslib_libats_libc_sighold sighold
+#define atslib_libats_libc_sigignore sigignore
+#define atslib_libats_libc_sigrelse sigrelse
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sigwait sigwait
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sigpause sigpause
+#define atslib_libats_libc_sigsuspend sigsuspend
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sigpending sigpending
+#define atslib_libats_libc_siginterrupt siginterrupt
+
+/* ****** ****** */
+
+#define atslib_libats_libc_psignal psignal
+
+/* ****** ****** */
+
+/*
+//
+// declared in <string.h>
+//
+extern
+char* strsignal (int signum) ;
+*/
+#define atslib_libats_libc_strsignal strsignal
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL
+
+/* ****** ****** */
+
+/* end of [signal.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdio.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdio.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdio.cats
@@ -0,0 +1,226 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: September, 2011 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO
+#define ATSLIB_LIBATS_LIBC_CATS_STDIO
+
+/* ****** ****** */
+
+#include <stdio.h>
+/*
+extern
+void
+perror (const char* str) ; // in [stdio.h]
+*/
+extern void exit (int status) ; // in [stdlib.h]
+
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_FILEptr_is_null(p) (p == 0)
+#define \
+atslib_libats_libc_FILEptr_isnot_null(p) (p != 0)
+//
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_clearerr(p) clearerr(((FILE*)p))
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fopen fopen
+#define atslib_libats_libc_fopen_ref_exn atslib_libats_libc_fopen_exn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fclose fclose
+#define atslib_libats_libc_fclose0 atslib_libats_libc_fclose
+#define atslib_libats_libc_fclose1 atslib_libats_libc_fclose
+#define atslib_libats_libc_fclose0_exn atslib_libats_libc_fclose_exn
+#define atslib_libats_libc_fclose1_exn atslib_libats_libc_fclose_exn
+
+/*
+#define atslib_libats_libc_fclose_stdin() atslib_libats_libc_fclose_exn(stdin)
+#define atslib_libats_libc_fclose_stdout() atslib_libats_libc_fclose_exn(stdout)
+#define atslib_libats_libc_fclose_stderr() atslib_libats_libc_fclose_exn(stderr)
+*/
+
+/* ****** ****** */
+//
+#define atslib_libats_libc_fflush fflush
+#define atslib_libats_libc_fflush0 atslib_libats_libc_fflush
+#define atslib_libats_libc_fflush1 atslib_libats_libc_fflush
+#define atslib_libats_libc_fflush0_exn atslib_libats_libc_fflush_exn
+#define atslib_libats_libc_fflush1_exn atslib_libats_libc_fflush_exn
+//
+#define atslib_libats_libc_fflush_all() atslib_libats_libc_fclose_exn((FILE*)0)
+#define atslib_libats_libc_fflush_stdout() atslib_libats_libc_fclose_exn(stdout)
+//
+/* ****** ****** */
+
+#define atslib_libats_libc_fileno fileno
+#define atslib_libats_libc_fileno0 atslib_libats_libc_fileno
+#define atslib_libats_libc_fileno1 atslib_libats_libc_fileno
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fdopen fdopen
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_feof(p) feof(((FILE*)p))
+#define atslib_libats_libc_feof0 atslib_libats_libc_feof
+#define atslib_libats_libc_feof1 atslib_libats_libc_feof
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_ferror(p) ferror(((FILE*)p))
+#define atslib_libats_libc_ferror0 atslib_libats_libc_ferror
+#define atslib_libats_libc_ferror1 atslib_libats_libc_ferror
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fgetc fgetc
+#define atslib_libats_libc_fgetc0 atslib_libats_libc_fgetc
+#define atslib_libats_libc_fgetc1 atslib_libats_libc_fgetc
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getchar getchar
+#define atslib_libats_libc_getchar0 atslib_libats_libc_getchar
+#define atslib_libats_libc_getchar1 atslib_libats_libc_getchar
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fputc fputc
+#define atslib_libats_libc_fputc0_int atslib_libats_libc_fputc
+#define atslib_libats_libc_fputc0_char(c, fp) atslib_libats_libc_fputc((int)c, fp)
+#define atslib_libats_libc_fputc1_int atslib_libats_libc_fputc
+#define atslib_libats_libc_fputc1_char(c, fp) atslib_libats_libc_fputc((int)c, fp)
+
+#define atslib_libats_libc_fputc0_exn_int atslib_libats_libc_fputc_exn
+#define atslib_libats_libc_fputc0_exn_char atslib_libats_libc_fputc_exn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_putchar putchar
+#define atslib_libats_libc_putchar0 atslib_libats_libc_putchar
+#define atslib_libats_libc_putchar1 atslib_libats_libc_putchar
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fgets fgets
+#define atslib_libats_libc_fgets0 atslib_libats_libc_fgets
+#define atslib_libats_libc_fgets1 atslib_libats_libc_fgets
+#define atslib_libats_libc_fgets1_err atslib_libats_libc_fgets
+#define atslib_libats_libc_fgets0_gc atslib_libats_libc_fgets_gc
+#define atslib_libats_libc_fgets1_gc atslib_libats_libc_fgets_gc
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fputs fputs
+#define atslib_libats_libc_fputs0 atslib_libats_libc_fputs
+#define atslib_libats_libc_fputs1 atslib_libats_libc_fputs
+#define atslib_libats_libc_fputs0_exn atslib_libats_libc_fputs_exn
+#define atslib_libats_libc_fputs1_exn atslib_libats_libc_fputs_exn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_puts puts
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fread fread
+#define atslib_libats_libc_fread0 atslib_libats_libc_fread
+#define atslib_libats_libc_fread1 atslib_libats_libc_fread
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fwrite fwrite
+#define atslib_libats_libc_fwrite0 atslib_libats_libc_fwrite
+#define atslib_libats_libc_fwrite1 atslib_libats_libc_fwrite
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fseek fseek
+#define atslib_libats_libc_fseek0 atslib_libats_libc_fseek
+#define atslib_libats_libc_fseek1 atslib_libats_libc_fseek
+
+/* ****** ****** */
+
+#define atslib_libats_libc_ftell ftell
+#define atslib_libats_libc_ftell0 atslib_libats_libc_ftell
+#define atslib_libats_libc_ftell1 atslib_libats_libc_ftell
+
+/* ****** ****** */
+
+#define atslib_libats_libc_perror perror
+
+/* ****** ****** */
+
+#define atslib_libats_libc_popen popen
+
+/* ****** ****** */
+
+#define atslib_libats_libc_pclose0_exn atslib_libats_libc_pclose_exn
+#define atslib_libats_libc_pclose1_exn atslib_libats_libc_pclose_exn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_remove remove
+#define atslib_libats_libc_rename rename
+
+/* ****** ****** */
+
+#define atslib_libats_libc_rewind rewind
+#define atslib_libats_libc_rewind0 atslib_libats_libc_rewind
+#define atslib_libats_libc_rewind1 atslib_libats_libc_rewind
+
+/* ****** ****** */
+
+#define atslib_libats_libc_tmpfile tmpfile
+#define atslib_libats_libc_tmpfile_ref_exn atslib_libats_libc_tmpfile_exn
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO
+
+/* ****** ****** */
+
+/* end of [stdio.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdlib.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdlib.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/stdlib.cats
@@ -0,0 +1,206 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_STDLIB
+#define \
+ATSLIB_LIBATS_LIBC_CATS_STDLIB
+
+/* ****** ****** */
+
+#include <stdlib.h>
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_abort abort
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc__Exit _Exit
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_atexit atexit
+
+/* ****** ****** */
+
+#define atslib_libats_libc_abs abs
+#define atslib_libats_libc_labs labs
+#define atslib_libats_libc_llabs llabs
+
+/* ****** ****** */
+
+#define atslib_libats_libc_div div
+#define atslib_libats_libc_ldiv ldiv
+#define atslib_libats_libc_lldiv lldiv
+
+/* ****** ****** */
+
+#define atslib_libats_libc_a64l a64l
+#define atslib_libats_libc_l64a l64a
+
+/* ****** ****** */
+
+#define atslib_libats_libc_atoi atoi
+#define atslib_libats_libc_atol atol
+#define atslib_libats_libc_atoll atoll
+
+/* ****** ****** */
+
+#define atslib_libats_libc_atof atof
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_strtol0(nptr, base) \
+atslib_libats_libc_strtol_unsafe(nptr, 0, base)
+#define \
+atslib_libats_libc_strtol1(nptr, endptr, base) \
+atslib_libats_libc_strtol_unsafe(nptr, endptr, base)
+#define \
+atslib_libats_libc_strtol_unsafe(nptr, endptr, base) \
+strtol((char*)(nptr), (char**)(endptr), base)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_strtoll0(nptr, base) \
+atslib_libats_libc_strtoll_unsafe(nptr, 0, base)
+#define \
+atslib_libats_libc_strtoll1(nptr, endptr, base) \
+atslib_libats_libc_strtoll_unsafe(nptr, endptr, base)
+#define \
+atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) \
+strtoll((char*)(nptr), (char**)(endptr), base)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_strtof0(nptr) \
+atslib_libats_libc_strtof_unsafe(nptr, 0)
+#define \
+atslib_libats_libc_strtof1(nptr, endptr) \
+atslib_libats_libc_strtof_unsafe(nptr, endptr)
+#define \
+atslib_libats_libc_strtof_unsafe(nptr, endptr) \
+strtof((char*)(nptr), (char**)(endptr))
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_strtod0(nptr) \
+atslib_libats_libc_strtod_unsafe(nptr, 0)
+#define \
+atslib_libats_libc_strtod1(nptr, endptr) \
+atslib_libats_libc_strtod_unsafe(nptr, endptr)
+#define \
+atslib_libats_libc_strtod_unsafe(nptr, endptr) \
+strtod((char*)(nptr), (char**)(endptr))
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getenv getenv
+#define atslib_libats_libc_putenv putenv
+#define atslib_libats_libc_setenv setenv
+#define atslib_libats_libc_unsetenv unsetenv
+
+/* ****** ****** */
+
+#define atslib_libats_libc_rand rand
+#define atslib_libats_libc_srand srand
+#define atslib_libats_libc_rand_r rand_r
+
+/* ****** ****** */
+
+#define atslib_libats_libc_random random
+#define atslib_libats_libc_srandom srandom
+
+/* ****** ****** */
+//
+#define atslib_libats_libc_seed48 seed48
+#define atslib_libats_libc_srand48 srand48
+//
+#define atslib_libats_libc_drand48 drand48
+#define atslib_libats_libc_erand48 erand48
+#define atslib_libats_libc_lrand48 lrand48
+#define atslib_libats_libc_nrand48 nrand48
+#define atslib_libats_libc_mrand48 mrand48
+#define atslib_libats_libc_jrand48 jrand48
+#define atslib_libats_libc_lcong48 lcong48
+//
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_qsort\
+(base, nmemb, size, compar) \
+qsort(base, nmemb, size, (void*)compar)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_bsearch\
+(key, base, nmemb, size, compar) \
+bsearch(key, base, nmemb, size, (void*)compar)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_mkstemp mkstemp
+#define \
+atslib_libats_libc_mkostemp mkostemp
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_mfree_libc free
+#define \
+atslib_libats_libc_malloc_libc malloc
+
+/* ****** ****** */
+
+#define atslib_libats_libc_system system
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDLIB
+
+/* ****** ****** */
+
+/* end of [stdlib.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/string.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/string.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/string.cats
@@ -0,0 +1,139 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_STRING
+#define ATSLIB_LIBATS_LIBC_CATS_STRING
+
+/* ****** ****** */
+
+#include <errno.h>
+#include <string.h>
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strcmp strcmp
+#define atslib_libats_libc_strncmp strncmp
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strcoll strcoll
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strspn strspn
+#define atslib_libats_libc_strcspn strcspn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strlen strlen
+#define atslib_libats_libc_strnlen strnlen
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strcat strcat
+#define atslib_libats_libc_strcat_unsafe strcat
+#define atslib_libats_libc_strncat_unsafe strncat
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strcpy strcpy
+#define atslib_libats_libc_strcpy_unsafe strcpy
+#define atslib_libats_libc_strncpy_unsafe strncpy
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strdup strdup
+#define atslib_libats_libc_strndup strndup
+#define atslib_libats_libc_strdup_free atsruntime_mfree_libc
+
+#define atslib_libats_libc_strdupa strdupa
+#define atslib_libats_libc_strndupa strndupa
+#define atslib_libats_libc_strdupa_free atsruntime_afree_libc
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strfry strfry
+
+/* ****** ****** */
+
+#define atslib_libats_libc_memcpy memcpy
+#define atslib_libats_libc_memcpy_unsafe memcpy
+
+/* ****** ****** */
+
+#define atslib_libats_libc_memccpy_unsafe memccpy
+
+/* ****** ****** */
+
+#define atslib_libats_libc_mempcpy mempcpy
+#define atslib_libats_libc_mempcpy_unsafe mempcpy
+
+/* ****** ****** */
+
+#define atslib_libats_libc_memset_unsafe memset
+
+/* ****** ****** */
+
+#define atslib_libats_libc_memmove_unsafe memmove
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strerror strerror
+#define atslib_libats_libc_strerror_r strerror_r
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atslib_libats_libc_strdup_gc
+  (atstype_string src)
+{
+  char *dst ;
+  size_t len, len1 ;
+  len = atslib_libats_libc_strlen((char*)src) ;
+  len1 = len + 1;
+  dst = atspre_malloc_gc(len1) ;
+  return atslib_libats_libc_memcpy(dst, src, len1) ;
+} // end of [atslib_libats_libc_strdup_gc]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRING
+
+/* ****** ****** */
+
+/* end of [string.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/strings.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/strings.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/strings.cats
@@ -0,0 +1,64 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: February, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS
+#define ATSLIB_LIBATS_LIBC_CATS_STRINGS
+
+/* ****** ****** */
+
+#include <strings.h>
+
+/* ****** ****** */
+
+#define atslib_libats_libc_index_int index
+#define atslib_libats_libc_index_char(c) index((int)c)
+
+#define atslib_libats_libc_rindex_int rindex
+#define atslib_libats_libc_rindex_char(c) rindex((int)c)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_strcasecmp strcasecmp
+#define atslib_libats_libc_strncasecmp strncasecmp
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS
+
+/* ****** ****** */
+
+/* end of [strings.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/mman.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/mman.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/mman.cats
@@ -0,0 +1,59 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: October, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
+#define ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
+
+/* ****** ****** */
+//
+#include <fcntl.h>
+#include <sys/types.h>
+//
+#include <sys/mman.h>
+//
+/* ****** ****** */
+
+#define atslib_libats_libc_shm_open shm_open
+#define atslib_libats_libc_shm_unlink shm_unlink
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN
+
+/* ****** ****** */
+
+/* end of [mman.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket.cats
@@ -0,0 +1,135 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: November, 2014 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
+
+/* ****** ****** */
+//
+#include <unistd.h>
+#include <sys/socket.h>
+//
+/* ****** ****** */
+//
+/*
+//
+// socket address family
+//
+typedef
+unsigned short int sa_family_t;
+*/
+//
+// socket protocol family
+//
+typedef
+unsigned short int sp_family_t;
+//
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_socket_AF_type socket_AF_type
+#define \
+atslib_libats_libc_socket_PF_type socket_PF_type
+
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_bind_err(fd, sa, len) \
+  bind(fd, (const struct sockaddr*)sa, len)
+//
+extern
+void
+atslib_libats_libc_bind_exn
+(
+  int sockfd, atstype_ptr sa, socklen_t salen
+); // end of [atslib_libats_libc_bind_exn]
+//
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_listen_err(fd, qsz) listen(fd, qsz)
+//
+extern
+void
+atslib_libats_libc_listen_exn(int sockfd, int listenqsz);
+//
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_connect_err(fd, sa, len) \
+  connect(fd, (const struct sockaddr*)sa, len)
+//
+extern
+void
+atslib_libats_libc_connect_exn
+(
+  int sockfd, atstype_ptr sa, socklen_t salen
+); // end of [atslib_libats_libc_connect_exn]
+//
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_accept_err(fd, sa, len) \
+  accept(fd, (struct sockaddr*)sa, (socklen_t*)len)
+//
+#define \
+atslib_libats_libc_accept_null_err(fd) atslib_libats_libc_accept_err(fd, 0, 0)
+//
+/* ****** ****** */
+
+#define atslib_libats_libc_socket_close(fd) close(fd)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_shutdown(fd, how) shutdown(fd, how)
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_socket_read(fd, bufp, bsz) read(fd, (char*)bufp, bsz)
+#define \
+atslib_libats_libc_socket_write(fd, bufp, bsz) write(fd, (const char*)bufp, bsz)
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET
+
+/* ****** ****** */
+
+/* end of [socket.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket_in.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket_in.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/socket_in.cats
@@ -0,0 +1,78 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: November, 2014 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
+
+/* ****** ****** */
+//
+#include <sys/socket.h>
+#include <netinet/in.h>
+//
+/* ****** ****** */
+//
+#ifdef memset
+#else
+extern
+void *memset (void *p, int c, size_t n) ;
+#endif // ifdef(memset)
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atslib_libats_libc_sockaddr_in_init
+(
+  atstype_ptr sa
+, sa_family_t af, in_addr_t inp, in_port_t port
+) {
+  struct sockaddr_in *sa2 = sa ;
+  (void)memset(sa2, 0, sizeof(struct sockaddr_in)) ;
+  sa2->sin_family = af ;
+  sa2->sin_addr.s_addr = inp ;
+  sa2->sin_port = port ;
+} // end of [atslib_libats_libc_sockaddr_in_init]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN
+
+/* ****** ****** */
+
+/* end of [socket_in.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/stat.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/stat.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/stat.cats
@@ -0,0 +1,82 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
+
+/* ****** ****** */
+
+#include <sys/stat.h>
+
+/* ****** ****** */
+
+typedef
+struct stat
+atslib_libats_libc_stat_struct ;
+
+/* ****** ****** */
+
+#define atslib_libats_libc_umask umask
+
+/* ****** ****** */
+
+#define atslib_libats_libc_chmod chmod
+
+/* ****** ****** */
+
+#define atslib_libats_libc_mkdir mkdir
+#define atslib_libats_libc_mkdirat mkdirat
+
+/* ****** ****** */
+
+#define atslib_libats_libc_mkfifo mkfifo
+
+/* ****** ****** */
+
+#define atslib_libats_libc_stat stat
+#define atslib_libats_libc_fstat fstat
+#define atslib_libats_libc_lstat lstat
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_STAT
+
+/* ****** ****** */
+
+/* end of [stat.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/time.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/time.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/time.cats
@@ -0,0 +1,94 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: August, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
+
+/* ****** ****** */
+
+#include <sys/time.h>
+
+/* ****** ****** */
+//
+typedef
+struct timeval
+atslib_libats_libc_timeval_type ;
+typedef
+struct timezone
+atslib_libats_libc_timezone_type ;
+//
+typedef
+struct itimerval
+atslib_libats_libc_itimerval_type ;
+//
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_gettimeofday_tv(tv) gettimeofday(tv, NULL)
+#define \
+atslib_libats_libc_gettimeofday_tz(tz) gettimeofday(NULL, tz)
+
+#define \
+atslib_libats_libc_settimeofday_tv(tv) settimeofday(tv, NULL)
+#define \
+atslib_libats_libc_settimeofday_tz(tz) settimeofday(NULL, tz)
+#define \
+atslib_libats_libc_settimeofday_tvtz(tv, tz) settimeofday(tv, tz)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_utimes utimes
+#define atslib_libats_libc_futimes futimes
+#define atslib_libats_libc_futimesat futimesat
+
+/* ****** ****** */
+//
+#define atslib_libats_libc_getitimer getitimer
+//
+#define atslib_libats_libc_setitimer setitimer
+#define \
+atslib_libats_libc_setitimer_null(which, itval) setitimer(which, itval, NULL)
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TIME
+
+/* ****** ****** */
+
+/* end of [time.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/types.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/types.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/types.cats
@@ -0,0 +1,166 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
+
+/* ****** ****** */
+
+#include <sys/types.h>
+
+/* ****** ****** */
+
+typedef mode_t atslib_libats_libc_mode_type ;
+
+/* ****** ****** */
+//
+// HX-2013-8:
+// [atslib_libats_libc_time_type] is already
+// defined in [libats/libc/CATS/time.cats]
+//
+typedef time_t atslib_libats_libc_types_time_type ;
+//
+/* ****** ****** */
+
+#if(0)
+//
+// HX-2013-05: where are they?
+// HX-2013-06: they are declared in [time.h]
+//
+typedef clock_t atslib_libats_libc_clock_type ;
+typedef clockid_t atslib_libats_libc_clockid_type ;
+#endif
+
+/* ****** ****** */
+
+typedef ino_t atslib_libats_libc_ino_type ;
+typedef off_t atslib_libats_libc_off_type ;
+
+/* ****** ****** */
+
+typedef pid_t atslib_libats_libc_pid_type ;
+typedef uid_t atslib_libats_libc_uid_type ;
+typedef gid_t atslib_libats_libc_gid_type ;
+
+/* ****** ****** */
+
+ATSinline()
+atslib_libats_libc_mode_type
+atslib_libats_libc_lor_mode_mode
+(
+  atslib_libats_libc_mode_type m1
+, atslib_libats_libc_mode_type m2
+) {
+  return (m1 | m2) ;
+} // end of [atslib_libats_libc_lor_mode_mode]
+
+ATSinline()
+atslib_libats_libc_mode_type
+atslib_libats_libc_land_mode_mode
+(
+  atslib_libats_libc_mode_type m1
+, atslib_libats_libc_mode_type m2
+) {
+  return (m1 & m2) ;
+} // end of [atslib_libats_libc_land_mode_mode]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atslib_libats_libc_lt_time_time
+(
+  atslib_libats_libc_types_time_type t1
+, atslib_libats_libc_types_time_type t2
+)
+{
+  return \
+  (t1 < t2 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_lt_time_time]
+ATSinline()
+atstype_bool
+atslib_libats_libc_lte_time_time
+(
+  atslib_libats_libc_types_time_type t1
+, atslib_libats_libc_types_time_type t2
+)
+{
+  return \
+  (t1 <= t2 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_lte_time_time]
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_gt_time_time(t1, t2) \
+  atslib_libats_libc_lt_time_time(t2, t1)
+#define \
+atslib_libats_libc_gte_time_time(t1, t2) \
+  atslib_libats_libc_lte_time_time(t2, t1)
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atslib_libats_libc_eq_time_time
+(
+  atslib_libats_libc_types_time_type t1
+, atslib_libats_libc_types_time_type t2
+)
+{
+  return (t1 == t2 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_eq_time_time]
+ATSinline()
+atstype_bool
+atslib_libats_libc_neq_time_time
+(
+  atslib_libats_libc_types_time_type t1
+, atslib_libats_libc_types_time_type t2
+)
+{
+  return (t1 != t2 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_neq_time_time]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES
+
+/* ****** ****** */
+
+/* end of [types.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/wait.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/wait.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/wait.cats
@@ -0,0 +1,60 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: October, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef \
+ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
+#define \
+ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
+
+/* ****** ****** */
+//
+#include <sys/wait.h>
+//
+/* ****** ****** */
+//
+#define \
+atslib_libats_libc_wait_void() wait((int*)0)
+#define \
+atslib_libats_libc_wait_status(x) wait((int*)x)
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT
+
+/* ****** ****** */
+
+/* end of [wait.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/time.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/time.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/time.cats
@@ -0,0 +1,206 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_TIME
+#define ATSLIB_LIBATS_LIBC_CATS_TIME
+
+/* ****** ****** */
+
+#include <time.h>
+
+/* ****** ****** */
+//
+typedef
+time_t
+atslib_libats_libc_time_type ;
+//
+typedef
+struct tm
+atslib_libats_libc_tm_struct_type ;
+//
+/* ****** ****** */
+
+typedef
+clock_t
+atslib_libats_libc_clock_type ;
+
+/* ****** ****** */
+
+typedef
+struct timespec
+atslib_libats_libc_timespec_type ;
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_difftime difftime
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_time_get() time((time_t*)0)
+
+ATSinline()
+atstype_bool
+atslib_libats_libc_time_getset
+(
+  atstype_ref tval
+) {
+  return (time((time_t*)tval) >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atslib_libats_libc_time_getset]
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_ctime ctime
+#define \
+atslib_libats_libc_ctime_r ctime_r
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_sec
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_sec ;
+} // end of [atslib_libats_libc_tm_get_sec]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_min
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_min ;
+} // end of [atslib_libats_libc_tm_get_min]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_hour
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_hour ;
+} // end of [atslib_libats_libc_tm_get_hour]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_mday
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_mday ;
+} // end of [atslib_libats_libc_tm_get_mday]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_mon
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_mon ;
+} // end of [atslib_libats_libc_tm_get_mon]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_year
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_year ;
+} // end of [atslib_libats_libc_tm_get_year]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_wday
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_wday ;
+} // end of [atslib_libats_libc_tm_get_wday]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_yday
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_yday ;
+} // end of [atslib_libats_libc_tm_get_yday]
+
+ATSinline()
+atstype_int
+atslib_libats_libc_tm_get_isdst
+  (atstype_ptr tm) {
+  return ((struct tm*)tm)->tm_isdst ;
+} // end of [atslib_libats_libc_tm_get_isdst]
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_mktime mktime
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_asctime asctime
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_gmtime gmtime
+#define \
+atslib_libats_libc_gmtime_r gmtime_r
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_localtime localtime
+#define \
+atslib_libats_libc_localtime_r localtime_r
+
+/* ****** ****** */
+
+#define atslib_libats_libc_tzset tzset
+
+/* ****** ****** */
+
+#define atslib_libats_libc_clock clock
+
+#define \
+atslib_libats_libc_clock_getres clock_getres
+
+/* ****** ****** */
+
+#define \
+atslib_libats_libc_clock_gettime clock_gettime
+#define \
+atslib_libats_libc_clock_settime clock_settime
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_TIME
+
+/* ****** ****** */
+
+/* end of [time.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/unistd.cats b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/unistd.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/unistd.cats
@@ -0,0 +1,174 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: April, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD
+#define ATSLIB_LIBATS_LIBC_CATS_UNISTD
+
+/* ****** ****** */
+
+#include <unistd.h>
+
+/* ****** ****** */
+
+#define atslib_libats_libc_close close
+#define atslib_libats_libc_close0 atslib_libats_libc_close
+#define atslib_libats_libc_close1 atslib_libats_libc_close
+#define atslib_libats_libc_close0_exn atslib_libats_libc_close_exn
+#define atslib_libats_libc_close1_exn atslib_libats_libc_close_exn
+
+/* ****** ****** */
+
+#define atslib_libats_libc_dup dup
+#define atslib_libats_libc_dup_fildes dup
+#define atslib_libats_libc_dup2 dup2
+#define atslib_libats_libc_dup3 dup3
+
+/* ****** ****** */
+
+#define atslib_libats_libc_execv(path, argv) execv((char*)path, (char**)argv)
+#define atslib_libats_libc_execvp(path, argv) execvp((char*)path, (char**)argv)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_encrypt encrypt
+
+/* ****** ****** */
+
+#define atslib_libats_libc_fork fork
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getcwd getcwd
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getlogin getlogin
+#define atslib_libats_libc_getlogin_r getlogin_r
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getpid getpid
+#define atslib_libats_libc_getppid getppid
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getuid getuid
+#define atslib_libats_libc_setuid setuid
+#define atslib_libats_libc_geteuid geteuid
+#define atslib_libats_libc_seteuid seteuid
+
+/* ****** ****** */
+
+#define atslib_libats_libc_getgid getgid
+#define atslib_libats_libc_setgid setgid
+#define atslib_libats_libc_getegid getegid
+#define atslib_libats_libc_setegid setegid
+
+/* ****** ****** */
+
+#define atslib_libats_libc_setreuid setreuid
+#define atslib_libats_libc_setregid setregid
+#define atslib_libats_libc_setresuid setresuid
+#define atslib_libats_libc_setresgid setresgid
+
+/* ****** ****** */
+
+#define atslib_libats_libc_setfsuid setfsuid
+#define atslib_libats_libc_setfsgid setfsgid
+
+/* ****** ****** */
+
+#define atslib_libats_libc_pause pause
+
+/* ****** ****** */
+
+#define atslib_libats_libc_read_err read
+#define atslib_libats_libc_write_err write
+
+/* ****** ****** */
+
+#define atslib_libats_libc_pread pread
+#define atslib_libats_libc_pwrite pwrite
+
+/* ****** ****** */
+
+#define atslib_libats_libc_alarm alarm
+#define atslib_libats_libc_alarm_set alarm
+#define atslib_libats_libc_alarm_cancel() alarm(0)
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sleep_int sleep
+#define atslib_libats_libc_sleep_uint sleep
+
+/* ****** ****** */
+
+#define atslib_libats_libc_usleep_int usleep
+#define atslib_libats_libc_usleep_uint usleep
+
+/* ****** ****** */
+
+#define atslib_libats_libc_rmdir rmdir
+
+/* ****** ****** */
+
+#define atslib_libats_libc_link link
+#define atslib_libats_libc_unlink unlink
+
+/* ****** ****** */
+
+#define atslib_libats_libc_symlink symlink
+#define atslib_libats_libc_readlink readlink
+
+/* ****** ****** */
+
+#define atslib_libats_libc_sync sync
+#define atslib_libats_libc_fsync fsync
+#define atslib_libats_libc_fdatasync fdatasync
+
+/* ****** ****** */
+
+#define atslib_libats_libc_truncate truncate
+#define atslib_libats_libc_ftruncate ftruncate
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD
+
+/* ****** ****** */
+
+/* end of [unistd.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/array.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/array.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/array.cats
@@ -0,0 +1,115 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/array.atxt
+** Time of generation: Wed Oct 10 21:08:58 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_ARRAY
+#define ATSLIB_PRELUDE_CATS_ARRAY
+
+/* ****** ****** */
+//
+// [stdlib.h]
+//
+extern
+void qsort
+(
+  void *base, size_t nmemb, size_t size
+, int(*compar)(const void *, const void *)
+) ; // end of [qsort]
+extern
+void *bsearch
+(
+  const void *key
+, const void *base
+, size_t nmemb, size_t size
+, int (*compar)(const void *, const void *)
+) ; // end of [bsearch]
+//
+#define atspre_array_qsort qsort
+#define atspre_array_bsearch bsearch
+//
+/* ****** ****** */
+//
+// [string.h]
+//
+#ifndef memcpy
+extern
+void *memcpy(void *dst, const void *src, size_t n) ;
+#endif // #ifndef
+#ifndef memmove
+extern
+void *memmove(void *dst, const void *src, size_t n) ;
+#endif // #ifndef
+//
+#define atspre_array_memcpy memcpy
+#define atspre_array_memmove memmove
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_array_foreach_funenv_tsz
+(
+  atstype_ptr A
+, atstype_size n
+, atstype_size tsz
+, atstype_funptr f
+, atstype_boxed env
+) {
+  char *p ;
+  size_t i ;
+  p = (char*)A ;
+  for (i = 0 ; i < n ; i += 1)
+  {
+    ((void(*)(void*, void*))(f))(p, env) ; p += tsz ;
+  }
+  return ;
+} // end of [atspre_array_foreach_funenv_tsz]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAY
+
+/* ****** ****** */
+
+/* end of [array.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayptr.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayptr.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayptr.cats
@@ -0,0 +1,82 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/arrayptr.atxt
+** Time of generation: Wed Oct 10 21:08:58 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR
+#define ATSLIB_PRELUDE_CATS_ARRAYPTR
+
+/* ****** ****** */
+
+ATSinline()
+atstype_arrptr
+atspre_arrpsz_get_ptrsize
+(
+  atstype_arrpsz psz, atstype_ref asz
+) {
+  *(size_t*)asz = psz.size ; return (psz.ptr) ;
+} // en of [atspre_arrpsz_get_ptrsize]
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_arrayptr_free
+  (atstype_arrptr p0) { ATS_MFREE (p0) ; return ; }
+// end of [atspre_arrayptr_free]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_arrptr
+atspre_arrayptr_make_arrpsz
+  (atstype_arrpsz psz) { return (psz).ptr ; }
+// end of [atspre_arrayptr_make_arrpsz]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR
+
+/* ****** ****** */
+
+/* end of [arrayptr.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayref.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayref.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/arrayref.cats
@@ -0,0 +1,63 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/arrayref.atxt
+** Time of generation: Wed Oct 10 21:08:58 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_ARRAYREF
+#define ATSLIB_PRELUDE_CATS_ARRAYREF
+
+/* ****** ****** */
+
+ATSinline()
+atstype_arrptr
+atspre_arrayref_make_arrpsz
+  (atstype_arrpsz psz) { return (psz).ptr ; }
+// end of [atspre_arrayref_make_arrpsz]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYREF
+
+/* ****** ****** */
+
+/* end of [arrayref.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/basics.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/basics.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/basics.cats
@@ -0,0 +1,251 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/basics.atxt
+** Time of generation: Wed Oct 10 21:08:54 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_BASICS
+#define ATSLIB_PRELUDE_CATS_BASICS
+
+/* ****** ****** */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_lor_int_int
+(
+  atstype_int x1
+, atstype_int x2
+) {
+  return ((x1)|(x2)) ;
+} /* [atspre_lor_int_int] */
+
+ATSinline()
+atstype_int
+atspre_land_int_int
+(
+  atstype_int x1
+, atstype_int x2
+) {
+  return ((x1)&(x2)) ;
+} /* [atspre_land_int_int] */
+
+ATSinline()
+atstype_int
+atspre_lxor_int_int
+(
+  atstype_int x1
+, atstype_int x2
+) {
+  return ((x1)^(x2)) ;
+} /* [atspre_lxor_int_int] */
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_int2sgn
+  (atstype_int x)
+{
+  return ((x < 0) ? -1 : ((x > 0) ? 1 : 0)) ;
+} /* [atspre_int2sgn] */
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_cloptr_free
+(
+  atstype_cloptr pclo
+) {
+  ATS_MFREE (pclo) ; return ;
+} /* [atspre_cloptr_free] */
+
+/* ****** ****** */
+
+ATSinline()
+atstype_string
+atspre_argv_get_at
+(
+  atstype_arrptr argv, atstype_int i
+)
+{
+  return (((atstype_string*)argv)[i]) ;
+} /* end of [atspre_argv_get_at] */
+
+ATSinline()
+atsvoid_t0ype
+atspre_argv_set_at
+(
+  atstype_arrptr argv
+, atstype_int i, atstype_string x
+)
+{
+  ((atstype_string*)argv)[i] = x ; return ;
+} /* end of [atspre_argv_set_at] */
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_exit
+ (atstype_int ecode) { exit(ecode) ; return ; }
+// end of [atspre_exit]
+
+ATSinline()
+atsvoid_t0ype
+atspre_exit_errmsg
+(
+  atstype_int ecode, atstype_string msg
+)
+{
+  fprintf(stderr, "exit(ATS): %s", (char*)msg); exit(ecode); return;
+} // end of [atspre_exit_errmsg]
+
+/* ****** ****** */
+
+#define atspre_exit_void atspre_exit
+#define atspre_exit_errmsg_void atspre_exit_errmsg
+
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atspre_assert_bool
+  (atstype_bool b)
+{
+  if (!b) exit(1) ; return ;
+} /* endfun */
+//
+#define atspre_assert_bool0 atspre_assert_bool
+#define atspre_assert_bool1 atspre_assert_bool
+//
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atspre_assert_errmsg_bool
+(
+  atstype_bool b, atstype_string msg
+)
+{
+  if (!b) {
+    fprintf(stderr, "%s", (char*)msg) ; exit(1) ;
+  } // end of [if]
+  return ;
+} /* endfun */
+//
+#define atspre_assert_errmsg_bool0 atspre_assert_errmsg_bool
+#define atspre_assert_errmsg_bool1 atspre_assert_errmsg_bool
+//
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atspre_assert_errmsg2_bool
+(
+  atstype_bool b
+, atstype_string msg1, atstype_string msg2
+)
+{
+  if (!b) {
+    fprintf(stderr, "%s%s", (char*)msg1, (char*)msg2) ; exit(1) ;
+  } // end of [if]
+  return ;
+} /* endfun */
+//
+#define atspre_assert_errmsg2_bool0 atspre_assert_errmsg2_bool
+#define atspre_assert_errmsg2_bool1 atspre_assert_errmsg2_bool
+//
+/* ****** ****** */
+//
+#if(0)
+//
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_void
+(
+  atstype_ref out
+, atstype_void arg
+)
+{
+  return/*do-nothing*/;
+}
+//
+#define
+atspre_print_void(x) atspre_fprint_void(stdout, x)
+#define
+atspre_prerr_void(x) atspre_fprint_void(stderr, x)
+//
+#endif // end of [if(0)]
+//  
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_newline
+  (atstype_ref out)
+{
+  int n ;
+  int err = -1 ;
+  n = fprintf((FILE*)out, "\n") ;
+  if (n > 0) err = fflush((FILE*)out) ;
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_newline] failed.") ; exit(1) ;
+  } // end of [if]
+  return ;
+} /* endfun */
+//
+#define atspre_print_newline() atspre_fprint_newline(stdout)
+#define atspre_prerr_newline() atspre_fprint_newline(stderr)
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_BASICS
+
+/* ****** ****** */
+
+/* end of [basics.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/bool.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/bool.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/bool.cats
@@ -0,0 +1,207 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/bool.atxt
+** Time of generation: Wed Oct 10 21:08:55 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: February, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_BOOL
+#define ATSLIB_PRELUDE_CATS_BOOL
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_int2bool (atstype_int x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+}
+#define atspre_int2bool0 atspre_int2bool
+#define atspre_int2bool1 atspre_int2bool
+
+/* ****** ****** */
+
+#define atspre_bool2int0(x) x
+#define atspre_bool2int1(x) x
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_neg_bool
+  (atstype_bool b) {
+  return (b) ? atsbool_false : atsbool_true ;
+} // end of [atspre_neg_bool]
+#define atspre_neg_bool0 atspre_neg_bool
+#define atspre_neg_bool1 atspre_neg_bool
+
+ATSinline()
+atstype_bool
+atspre_add_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1) ? atsbool_true : (b2) ;
+} // end of [atspre_add_bool_bool]
+#define atspre_add_bool0_bool0 atspre_add_bool_bool
+#define atspre_add_bool0_bool1 atspre_add_bool_bool
+#define atspre_add_bool1_bool0 atspre_add_bool_bool
+#define atspre_add_bool1_bool1 atspre_add_bool_bool
+
+ATSinline()
+atstype_bool
+atspre_mul_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1) ? (b2) : atsbool_false ;
+} // end of [atspre_mul_bool_bool]
+#define atspre_mul_bool0_bool0 atspre_mul_bool_bool
+#define atspre_mul_bool0_bool1 atspre_mul_bool_bool
+#define atspre_mul_bool1_bool0 atspre_mul_bool_bool
+#define atspre_mul_bool1_bool1 atspre_mul_bool_bool
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_xor_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1) ? (!b2) : (b2) ;
+} // end of [atspre_xor_bool_bool]
+#define atspre_xor_bool0_bool0 atspre_xor_bool_bool
+#define atspre_xor_bool1_bool1 atspre_xor_bool_bool
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_lt_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1) ? atsbool_false : (b2) ;
+} // end of [atspre_lt_bool_bool]
+#define atspre_lt_bool0_bool0 atspre_lt_bool_bool
+#define atspre_lt_bool1_bool1 atspre_lt_bool_bool
+ATSinline()
+atstype_bool
+atspre_lte_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1) ? (b2) : atsbool_true ;
+} // end of [atspre_lte_bool_bool]
+#define atspre_lte_bool0_bool0 atspre_lte_bool_bool
+#define atspre_lte_bool1_bool1 atspre_lte_bool_bool
+
+ATSinline()
+atstype_bool
+atspre_gt_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b2) ? atsbool_false : (b1) ;
+} // end of [atspre_gt_bool_bool]
+#define atspre_gt_bool0_bool0 atspre_gt_bool_bool
+#define atspre_gt_bool1_bool1 atspre_gt_bool_bool
+ATSinline()
+atstype_bool
+atspre_gte_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b2) ? (b1) : atsbool_true ;
+} // end of [atspre_gte_bool_bool]
+#define atspre_gte_bool0_bool0 atspre_gte_bool_bool
+#define atspre_gte_bool1_bool1 atspre_gte_bool_bool
+
+ATSinline()
+atstype_bool
+atspre_eq_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1 == b2) ;
+} // end of [atspre_eq_bool_bool]
+#define atspre_eq_bool0_bool0 atspre_eq_bool_bool
+#define atspre_eq_bool1_bool1 atspre_eq_bool_bool
+ATSinline()
+atstype_bool
+atspre_neq_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1 != b2) ;
+} // end of [atspre_neq_bool_bool]
+#define atspre_neq_bool0_bool0 atspre_neq_bool_bool
+#define atspre_neq_bool1_bool1 atspre_neq_bool_bool
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_compare_bool_bool (
+  atstype_bool b1, atstype_bool b2
+) {
+  return (b1 - b2) ;
+} // end of [atspre_compare_bool_bool]
+#define atspre_compare_bool0_bool0 atspre_compare_bool_bool
+#define atspre_compare_bool1_bool1 atspre_compare_bool_bool
+
+/* ****** ****** */
+
+ATSinline()
+atstype_string
+atspre_bool2string (
+  atstype_bool x
+) {
+  return (x) ? "true" : "false" ;
+} // end of [atspre_bool2string]
+
+ATSinline()
+atstype_string
+atspre_bool_tostring (
+  atstype_bool x
+) {
+  return (x) ? "true" : "false" ;
+} // end of [atspre_bool_tostring]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_BOOL
+
+/* ****** ****** */
+
+/* end of [bool.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/char.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/char.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/char.cats
@@ -0,0 +1,529 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/char.atxt
+** Time of generation: Wed Oct 10 21:08:55 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: February, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_CHAR
+#define ATSLIB_PRELUDE_CATS_CHAR
+
+/* ****** ****** */
+
+#include <ctype.h>
+
+/* ****** ****** */
+
+#ifdef __CYGWIN__
+//
+#ifndef isascii
+extern int isascii (int c) ; // _XOPEN_SOURCE
+#endif // end of [isascii]
+
+#ifndef isblank
+extern int isblank (int c) ; // _XOPEN_SOURCE >= 600
+#endif // end of [isblank]
+
+#ifndef toascii
+extern int toascii (int c) ; // _XOPEN_SOURCE
+#endif // end of [toascii]
+//
+#endif // end of [#ifdef(__CYGWIN__)]
+
+/* ****** ****** */
+//
+ATSinline()
+atstype_char
+atspre_int2char
+  (atstype_int i) { return ((atstype_char)i) ; }
+ATSinline()
+atstype_schar
+atspre_int2schar
+  (atstype_int i) { return ((atstype_schar)i) ; }
+ATSinline()
+atstype_uchar
+atspre_int2uchar
+  (atstype_int i) { return ((atstype_uchar)i) ; }
+//
+#define atspre_int2char0 atspre_int2char
+#define atspre_int2schar0 atspre_int2schar
+#define atspre_int2uchar0 atspre_int2uchar
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_int
+atspre_char2int
+  (atstype_char c) { return ((atstype_int)c) ; }
+ATSinline()
+atstype_int
+atspre_schar2int
+  (atstype_schar c) { return ((atstype_int)c) ; }
+ATSinline()
+atstype_int
+atspre_uchar2int
+  (atstype_uchar c) { return ((atstype_int)c) ; }
+//
+#define atspre_char2int0 atspre_char2int
+#define atspre_schar2int0 atspre_schar2int
+#define atspre_uchar2int0 atspre_uchar2int
+//
+#define atspre_char2int1 atspre_char2int
+#define atspre_schar2int1 atspre_schar2int
+#define atspre_uchar2int1 atspre_uchar2int
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_uint
+atspre_char2uint
+  (atstype_char c) { return ((atstype_uint)c) ; }
+ATSinline()
+atstype_uint
+atspre_schar2uint
+  (atstype_schar c) { return ((atstype_uint)c) ; }
+ATSinline()
+atstype_uint
+atspre_uchar2uint
+  (atstype_uchar c) { return ((atstype_uint)c) ; }
+//
+#define atspre_char2uint0 atspre_char2uint
+#define atspre_schar2uint0 atspre_schar2uint
+#define atspre_uchar2uint0 atspre_uchar2uint
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_int
+atspre_char2u2int
+  (atstype_char c)
+  { return ((atstype_int)((atstype_uchar)c)) ; }
+ATSinline()
+atstype_uint
+atspre_char2u2uint
+  (atstype_char c)
+  { return ((atstype_uint)((atstype_uchar)c)) ; }
+//
+#define atspre_char2u2int0 atspre_char2u2int
+#define atspre_char2u2uint0 atspre_char2u2uint
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_char_iseqz
+  (atstype_char c)
+{
+  return ((c == 0) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_char_iseqz]
+#define atspre_char0_iseqz(c) atspre_char_iseqz(c) 
+#define atspre_char1_iseqz(c) atspre_char_iseqz(c) 
+
+ATSinline()
+atstype_bool
+atspre_char_isneqz
+  (atstype_char c)
+{
+  return ((c != 0) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_char_isneqz]
+#define atspre_char0_isneqz(c) atspre_char_isneqz(c) 
+#define atspre_char1_isneqz(c) atspre_char_isneqz(c) 
+
+/* ****** ****** */
+//
+ATSinline()
+atstype_char
+atspre_add_char_int
+(
+  atstype_char c1, atstype_int i2
+) { return (c1 + i2) ; }
+//
+#define atspre_add_char0_int0 atspre_add_char_int
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_char
+atspre_sub_char_int
+(
+  atstype_char c1, atstype_int i2
+) { return (c1 - i2) ; }
+//
+#define atspre_sub_char0_int0 atspre_sub_char_int
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_int
+atspre_sub_char_char
+(
+  atstype_char c1, atstype_char c2
+) { return (c1 - c2) ; }
+//
+#define atspre_sub_char0_char0 atspre_sub_char_char
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_lt_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 < i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lt_int_int]
+#define atspre_lt_char0_char0 atspre_lt_int_int
+#define atspre_lt_char1_char1 atspre_lt_int_int
+
+ATSinline()
+atstype_bool
+atspre_lte_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 <= i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lte_int_int]
+#define atspre_lte_char0_char0 atspre_lte_int_int
+#define atspre_lte_char1_char1 atspre_lte_int_int
+
+ATSinline()
+atstype_bool
+atspre_gt_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 > i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gt_int_int]
+#define atspre_gt_char0_char0 atspre_gt_int_int
+#define atspre_gt_char1_char1 atspre_gt_int_int
+
+ATSinline()
+atstype_bool
+atspre_gte_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 >= i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gte_int_int]
+#define atspre_gte_char0_char0 atspre_gte_int_int
+#define atspre_gte_char1_char1 atspre_gte_int_int
+
+ATSinline()
+atstype_bool
+atspre_eq_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 == i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_eq_int_int]
+#define atspre_eq_char0_char0 atspre_eq_int_int
+#define atspre_eq_char1_char1 atspre_eq_int_int
+
+ATSinline()
+atstype_bool
+atspre_neq_int_int
+  (atstype_int i1, atstype_int i2) {
+  return (i1 != i2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_neq_int_int]
+#define atspre_neq_char0_char0 atspre_neq_int_int
+#define atspre_neq_char1_char1 atspre_neq_int_int
+
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_compare_int_int
+  (atstype_int i1, atstype_int i2)
+{
+  return (i1 - i2) ;
+} // end of [atspre_compare_int_int]
+#define atspre_compare_char0_char0(c1, c2) atspre_compare_int_int(c1, c2)
+#define atspre_compare_char1_char1(c1, c2) atspre_compare_int_int(c1, c2)
+
+/* ****** ****** */
+
+#define atspre_eq_char0_int0(c, i) atspre_eq_int_int(c, i)
+#define atspre_eq_int0_char0(i, c) atspre_eq_int_int(i, c)
+#define atspre_neq_char0_int0(c, i) atspre_neq_int_int(c, i)
+#define atspre_neq_int0_char0(i, c) atspre_neq_int_int(i, c)
+
+/* ****** ****** */
+
+#define atspre_compare_char0_int0(c, i) atspre_compare_int_int(c, i)
+#define atspre_compare_int0_char0(i, c) atspre_compare_int_int(i, c)
+
+/* ****** ****** */
+//
+// unsigned characters
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_lt_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 < c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lt_uchar_uchar]
+#define atspre_lt_uchar0_uchar0 atspre_lt_uchar_uchar
+#define atspre_lt_uchar1_uchar1 atspre_lt_uchar_uchar
+
+ATSinline()
+atstype_bool
+atspre_lte_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 <= c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lte_uchar_uchar]
+#define atspre_lte_uchar0_uchar0 atspre_lte_uchar_uchar
+#define atspre_lte_uchar1_uchar1 atspre_lte_uchar_uchar
+
+ATSinline()
+atstype_bool
+atspre_gt_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 > c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gt_uchar_uchar]
+#define atspre_gt_uchar0_uchar0 atspre_gt_uchar_uchar
+#define atspre_gt_uchar1_uchar1 atspre_gt_uchar_uchar
+
+ATSinline()
+atstype_bool
+atspre_gte_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 >= c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gte_uchar_uchar]
+#define atspre_gte_uchar0_uchar0 atspre_gte_uchar_uchar
+#define atspre_gte_uchar1_uchar1 atspre_gte_uchar_uchar
+
+ATSinline()
+atstype_bool
+atspre_eq_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 == c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_eq_uchar_uchar]
+#define atspre_eq_uchar0_uchar0 atspre_eq_uchar_uchar
+#define atspre_eq_uchar1_uchar1 atspre_eq_uchar_uchar
+
+ATSinline()
+atstype_bool
+atspre_neq_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return (c1 != c2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_neq_uchar_uchar]
+#define atspre_neq_uchar0_uchar0 atspre_neq_uchar_uchar
+#define atspre_neq_uchar1_uchar1 atspre_neq_uchar_uchar
+
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_compare_uchar_uchar
+  (atstype_uchar c1, atstype_uchar c2) {
+  return ((atstype_int)c1 - (atstype_int)c2) ;
+} // end of [atspre_compare_uchar_uchar]
+#define atspre_compare_uchar0_uchar0 atspre_compare_uchar_uchar
+#define atspre_compare_uchar1_uchar1 atspre_compare_uchar_uchar
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_isalpha_int
+  (atstype_int c) {
+  return (isalpha(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isalpha_int]
+#define atspre_isalpha_char(c) atspre_isalpha_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_isalnum_int
+  (atstype_int c) {
+  return (isalnum(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isalnum_int]
+#define atspre_isalnum_char(c) atspre_isalnum_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_isascii_int
+  (atstype_int c) {
+  return (isascii(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isascii_int]
+#define atspre_isascii_char(c) atspre_isascii_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_isblank_int
+  (atstype_int c) {
+  return (isblank(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isblank_int]
+#define atspre_isblank_char(c) atspre_isblank_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_isspace_int
+  (atstype_int c) {
+  return (isspace(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isspace_int]
+#define atspre_isspace_char(c) atspre_isspace_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_iscntrl_int
+  (atstype_int c) {
+  return (iscntrl(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_iscntrl_int]
+#define atspre_iscntrl_char(c) atspre_iscntrl_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_isdigit_int
+  (atstype_int c) {
+  return (isdigit(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isdigit_int]
+#define atspre_isdigit_char(c) atspre_isdigit_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_isxdigit_int
+  (atstype_int c) {
+  return (isxdigit(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isxdigit_int]
+#define atspre_isxdigit_char(c) atspre_isxdigit_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_isgraph_int
+  (atstype_int c) {
+  return (isgraph(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isgraph_int]
+#define atspre_isgraph_char(c) atspre_isgraph_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_isprint_int
+  (atstype_int c) {
+  return (isprint(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isprint_int]
+#define atspre_isprint_char(c) atspre_isprint_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_ispunct_int
+  (atstype_int c) {
+  return (ispunct(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_ispunct_int]
+#define atspre_ispunct_char(c) atspre_ispunct_int((atstype_int)(c))
+
+ATSinline()
+atstype_bool
+atspre_islower_int
+  (atstype_int c) {
+  return (islower(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_islower_int]
+#define atspre_islower_char(c) atspre_islower_int((atstype_int)(c))
+ATSinline()
+atstype_bool
+atspre_isupper_int
+  (atstype_int c) {
+  return (isupper(c) ? atsbool_true : atsbool_false) ;
+} // end of [atspre_isupper_int]
+#define atspre_isupper_char(c) atspre_isupper_int((atstype_int)(c))
+
+/* ****** ****** */
+
+#define atspre_toascii toascii
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_tolower_int
+  (atstype_int c) { return tolower(c) ; }
+ATSinline()
+atstype_char
+atspre_tolower_char
+  (atstype_char c) { return tolower(c) ; }
+//
+ATSinline()
+atstype_int
+atspre_toupper_int
+  (atstype_int c) { return toupper(c) ; }
+ATSinline()
+atstype_char
+atspre_toupper_char
+  (atstype_char c) { return toupper(c) ; }
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_char
+atspre_int2digit
+  (atstype_int i) { return ('0' + i) ; }
+// end of [atspre_int2digit]
+ATSinline()
+atstype_char
+atspre_int2xdigit
+  (atstype_int i) {
+  return (i < 10) ? ('0' + i) : ('a' + (i - 10)) ;
+} // end of [atspre_int2xdigit]
+ATSinline()
+atstype_char
+atspre_int2xxdigit
+  (atstype_int i) {
+  return (i < 10) ? ('0' + i) : ('A' + (i - 10)) ;
+} // end of [atspre_int2xxdigit]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_byte2int (atstype_byte b) { return ((atstype_int)b) ; }
+ATSinline()
+atstype_byte
+atspre_int2byte (atstype_int i) { return ((atstype_byte)i) ; }
+
+ATSinline()
+atstype_uint
+atspre_byte2uint (atstype_byte b) { return ((atstype_uint)b) ; }
+ATSinline()
+atstype_byte
+atspre_uint2byte (atstype_uint u) { return ((atstype_byte)u) ; }
+
+/* ****** ****** */
+
+#define atspre_byte2int0 atspre_byte2int
+#define atspre_int2byte0 atspre_int2byte
+#define atspre_byte2uint0 atspre_byte2uint
+#define atspre_uint2byte0 atspre_uint2byte
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_CHAR
+
+/* ****** ****** */
+
+/* end of [char.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/filebas.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/filebas.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/filebas.cats
@@ -0,0 +1,385 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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 *)
+(* Start time: January, 2013 *)
+(* Authoremail: hwxiATcsDOTbuDOTedu *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/filebas.atxt
+** Time of generation: Wed Oct 10 21:08:57 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_FILEBAS
+#define ATSLIB_PRELUDE_CATS_FILEBAS
+
+/* ****** ****** */
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+/* ****** ****** */
+
+#define atspre_FILE_stdin stdin
+#define atspre_FILE_stdout stdout
+#define atspre_FILE_stderr stderr
+
+/* ****** ****** */
+
+#define atspre_file_mode_r "r"
+#define atspre_file_mode_rr "r+"
+#define atspre_file_mode_w "w"
+#define atspre_file_mode_ww "w+"
+#define atspre_file_mode_a "a"
+#define atspre_file_mode_aa "a+"
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_test_file_exists
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat((const char*)path, &st) ;
+  return
+  (err==0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_test_file_exists]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_test_file_mode_fun
+(
+  atstype_string path, atstype_funptr pred
+)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return
+  ((atstype_bool(*)(atstype_uint))(pred))(st.st_mode) ? 1 : 0 ;
+}
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_test_file_isreg
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return (S_ISREG(st.st_mode)) ? 1 : 0 ;
+} // end of [atspre_test_file_isreg]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_test_file_isdir
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return (S_ISDIR(st.st_mode)) ? 1 : 0 ;
+} // end of [atspre_test_file_isdir]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_test_file_isblk
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return (S_ISBLK(st.st_mode)) ? 1 : 0 ;
+} // end of [atspre_test_file_isblk]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_test_file_ischr
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return (S_ISCHR(st.st_mode)) ? 1 : 0 ;
+} // end of [atspre_test_file_ischr]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_test_file_isfifo
+  (atstype_string path)
+{
+  int err;
+  struct stat st ;
+  err = stat ((const char*)path, &st) ;
+  if (err < 0) return -1 ;
+  return (S_ISFIFO(st.st_mode)) ? 1 : 0 ;
+} // end of [atspre_test_file_isfifo]
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fileref_close
+  (atstype_ref filr)
+{
+  int err ;
+  err = fclose((FILE*)filr) ;
+  if (err < 0) {
+    fprintf(
+      stderr
+    , "exit(ATS): [atspre_fileref_close] failed.\n"
+    ) ;
+    exit(1) ;
+  }
+  return ;
+} // end of [atspre_fileref_close]
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fileref_flush
+  (atstype_ref filr)
+{
+  int err ;
+  err = fflush((FILE*)filr) ;
+  if (err < 0) {
+    fprintf(
+      stderr
+    , "exit(ATS): [atspre_fileref_fflush] failed.\n"
+    ) ;
+    exit(1) ;
+  }
+  return ;
+} // end of [atspre_fileref_flush]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ref
+atspre_fileref_open_exn
+  (atstype_string path, atstype_string fm)
+{
+  FILE* filr ;
+  filr = fopen((char*)path, (char*)fm) ;
+  if (!filr) {
+    fprintf(
+      stderr
+    , "exit(ATS): [atspre_fileref_open_exn(%s, %s)] failed.\n"
+    , (char*)path, (char*)fm
+    ) ;
+    exit(1) ;
+  }
+  return filr ;
+} // end of [atspre_fileref_open]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_fileref_getc
+  (atstype_ref filr)
+  { return fgetc((FILE*)filr) ; }
+// end of [atspre_fileref_getc]
+
+/* ****** ****** */
+//
+ATSinline()
+atsvoid_t0ype
+atspre_fileref_putc
+(
+  atstype_ref filr, atstype_int c
+) {
+  fputc (c, (FILE*)filr) ; return ;
+} // end of [atspre_fileref_putc]
+//
+#define \
+atspre_fileref_putc_int atspre_fileref_putc
+#define \
+atspre_fileref_putc_char atspre_fileref_putc
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fileref_puts
+( atstype_ref fout
+, atstype_ptr data)
+{
+  fputs((char*)data, (FILE*)fout) ; return ;
+} // end of [atspre_fileref_puts]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_fileref_is_eof
+  (atstype_ref filr)
+{
+  int eof ;
+  eof = feof((FILE*)filr) ;
+  return
+  (eof != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_is_eof]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_int
+(atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%i"
+      , (atstype_int*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_int]
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_uint
+(atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%u"
+      , (atstype_uint*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_uint]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_lint
+(atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%li"
+      , (atstype_lint*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_lint]
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_ulint
+(atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%lu"
+      , (atstype_ulint*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_ulint]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_float
+(atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%f"
+      , (atstype_float*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_float]
+
+ATSinline()
+atstype_bool
+atspre_fileref_load_double
+  (atstype_ref finp, atstype_ref data)
+{
+  int n ;
+  n = fscanf
+      ( (FILE*)finp
+      , "%lf"
+      , (atstype_double*)data) ;
+  return
+  (n==1 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_fileref_load_double]
+
+/* ****** ****** */
+
+extern
+atstype_ptr
+atspre_fileref_get_line_string_main2
+(
+  atstype_int bsz // int bsz
+, atstype_ptr filp // FILE*filp
+, atstype_ref nlen // (int)*nlen
+) ; // endfun
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_FILEBAS
+
+/* ****** ****** */
+
+/* end of [filebas.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/float.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/float.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/float.cats
@@ -0,0 +1,710 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/float.atxt
+** Time of generation: Wed Oct 10 21:08:56 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: April, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_FLOAT
+#define ATSLIB_PRELUDE_CATS_FLOAT
+
+/* ****** ****** */
+
+ATSinline()
+atstype_float
+atspre_g0int2float_int_float
+  (atstype_int x) { return ((atstype_float)x) ; }
+// end of [atspre_g0int2float_int_float]
+
+ATSinline()
+atstype_double
+atspre_g0int2float_int_double
+  (atstype_int x) { return ((atstype_double)x) ; }
+// end of [atspre_g0int2float_int_double]
+
+ATSinline()
+atstype_double
+atspre_g0int2float_lint_double
+  (atstype_lint x) { return ((atstype_double)x) ; }
+// end of [atspre_g0int2float_lint_double]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_g0float2int_float_int
+  (atstype_float x) { return ((atstype_int)x) ; }
+ATSinline()
+atstype_lint
+atspre_g0float2int_float_lint
+  (atstype_float x) { return ((atstype_lint)x) ; }
+ATSinline()
+atstype_llint
+atspre_g0float2int_float_llint
+  (atstype_float x) { return ((atstype_llint)x) ; }
+
+ATSinline()
+atstype_int
+atspre_g0float2int_double_int
+  (atstype_double x) { return ((atstype_int)x) ; }
+ATSinline()
+atstype_lint
+atspre_g0float2int_double_lint
+  (atstype_double x) { return ((atstype_lint)x) ; }
+ATSinline()
+atstype_llint
+atspre_g0float2int_double_llint
+  (atstype_double x) { return ((atstype_llint)x) ; }
+
+/* ****** ****** */
+
+ATSinline()
+atstype_float
+atspre_g0float2float_float_float (atstype_float x) { return (x) ; }
+
+ATSinline()
+atstype_double
+atspre_g0float2float_double_double (atstype_double x) { return (x) ; }
+
+ATSinline()
+atstype_double
+atspre_g0float2float_float_double
+(
+atstype_float x
+)
+{
+ return ((atstype_double)x) ;
+}
+
+ATSinline()
+atstype_float
+atspre_g0float2float_double_float
+(
+atstype_double x
+)
+{
+ return ((atstype_float)x) ;
+}
+
+/* ****** ****** */
+//
+extern double atof (const char *inp) ;
+//
+ATSinline()
+atstype_double
+atspre_g0string2float_double
+  (atstype_string inp) { return atof((char*)inp) ; }
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_float
+atspre_g0float_neg_float (atstype_float f) { return (-f) ; }
+ATSinline()
+atstype_double
+atspre_g0float_neg_double (atstype_double f) { return (-f) ; }
+ATSinline()
+atstype_ldouble
+atspre_g0float_neg_ldouble (atstype_ldouble f) { return (-f) ; }
+
+ATSinline()
+atstype_float
+atspre_g0float_abs_float (atstype_float f) { return (f >= 0 ? f : -f) ; }
+ATSinline()
+atstype_double
+atspre_g0float_abs_double (atstype_double f) { return (f >= 0 ? f : -f) ; }
+ATSinline()
+atstype_ldouble
+atspre_g0float_abs_ldouble (atstype_ldouble f) { return (f >= 0 ? f : -f) ; }
+
+ATSinline()
+atstype_float
+atspre_g0float_succ_float (atstype_float f) { return (f+1) ; }
+ATSinline()
+atstype_double
+atspre_g0float_succ_double (atstype_double f) { return (f+1) ; }
+ATSinline()
+atstype_ldouble
+atspre_g0float_succ_ldouble (atstype_ldouble f) { return (f+1) ; }
+
+ATSinline()
+atstype_float
+atspre_g0float_pred_float (atstype_float f) { return (f-1) ; }
+ATSinline()
+atstype_double
+atspre_g0float_pred_double (atstype_double f) { return (f-1) ; }
+ATSinline()
+atstype_ldouble
+atspre_g0float_pred_ldouble (atstype_ldouble f) { return (f-1) ; }
+
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_float
+atspre_g0float_add_float
+  (atstype_float f1, atstype_float f2) { return (f1 + f2) ; }
+// end of [atspre_g0float_add_float]
+ATSinline()
+atstype_float
+atspre_g0float_sub_float
+  (atstype_float f1, atstype_float f2) { return (f1 - f2) ; }
+// end of [atspre_g0float_sub_float]
+ATSinline()
+atstype_float
+atspre_g0float_mul_float
+  (atstype_float f1, atstype_float f2) { return (f1 * f2) ; }
+// end of [atspre_g0float_mul_float]
+ATSinline()
+atstype_float
+atspre_g0float_div_float
+  (atstype_float f1, atstype_float f2) { return (f1 / f2) ; }
+// end of [atspre_g0float_div_float]
+//
+ATSinline()
+atstype_double
+atspre_g0float_add_double
+  (atstype_double f1, atstype_double f2) { return (f1 + f2) ; }
+// end of [atspre_g0float_add_double]
+ATSinline()
+atstype_double
+atspre_g0float_sub_double
+  (atstype_double f1, atstype_double f2) { return (f1 - f2) ; }
+// end of [atspre_g0float_sub_double]
+ATSinline()
+atstype_double
+atspre_g0float_mul_double
+  (atstype_double f1, atstype_double f2) { return (f1 * f2) ; }
+// end of [atspre_g0float_mul_double]
+ATSinline()
+atstype_double
+atspre_g0float_div_double
+  (atstype_double f1, atstype_double f2) { return (f1 / f2) ; }
+// end of [atspre_g0float_div_double]
+//
+ATSinline()
+atstype_ldouble
+atspre_g0float_add_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 + f2) ; }
+// end of [atspre_g0float_add_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_g0float_sub_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 - f2) ; }
+// end of [atspre_g0float_sub_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_g0float_mul_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 * f2) ; }
+// end of [atspre_g0float_mul_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_g0float_div_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 / f2) ; }
+// end of [atspre_g0float_div_ldouble]
+//
+extern atstype_float fmodf (atstype_float, atstype_float) ;
+extern atstype_double fmod (atstype_double, atstype_double) ;
+extern atstype_ldouble fmodl (atstype_ldouble, atstype_ldouble) ;
+//
+ATSinline()
+atstype_float
+atspre_g0float_mod_float
+  (atstype_float f1, atstype_float f2) { return fmodf(f1, f2) ; }
+ATSinline()
+atstype_double
+atspre_g0float_mod_double
+  (atstype_double f1, atstype_double f2) { return fmod(f1, f2) ; }
+ATSinline()
+atstype_ldouble
+atspre_g0float_mod_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return fmodl(f1, f2) ; }
+//
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_bool
+atspre_g0float_lt_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 < f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lt_float]
+ATSinline()
+atstype_bool
+atspre_g0float_lte_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lte_float]
+ATSinline()
+atstype_bool
+atspre_g0float_gt_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 > f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gt_float]
+ATSinline()
+atstype_bool
+atspre_g0float_gte_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gte_float]
+ATSinline()
+atstype_bool
+atspre_g0float_eq_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 == f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_eq_float]
+ATSinline()
+atstype_bool
+atspre_g0float_neq_float
+  (atstype_float f1, atstype_float f2) {
+  return (f1 != f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_neq_float]
+//
+ATSinline()
+atstype_bool
+atspre_g0float_lt_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 < f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lt_double]
+ATSinline()
+atstype_bool
+atspre_g0float_lte_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lte_double]
+ATSinline()
+atstype_bool
+atspre_g0float_gt_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 > f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gt_double]
+ATSinline()
+atstype_bool
+atspre_g0float_gte_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gte_double]
+ATSinline()
+atstype_bool
+atspre_g0float_eq_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 == f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_eq_double]
+ATSinline()
+atstype_bool
+atspre_g0float_neq_double
+  (atstype_double f1, atstype_double f2) {
+  return (f1 != f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_neq_double]
+//
+ATSinline()
+atstype_bool
+atspre_g0float_lt_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 < f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lt_ldouble]
+ATSinline()
+atstype_bool
+atspre_g0float_lte_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 <= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_lte_ldouble]
+ATSinline()
+atstype_bool
+atspre_g0float_gt_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 > f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gt_ldouble]
+ATSinline()
+atstype_bool
+atspre_g0float_gte_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 >= f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_gte_ldouble]
+ATSinline()
+atstype_bool
+atspre_g0float_eq_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 == f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_eq_ldouble]
+ATSinline()
+atstype_bool
+atspre_g0float_neq_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) {
+  return (f1 != f2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0float_neq_ldouble]
+//
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_g0float_compare_float
+(
+  atstype_float f1, atstype_float f2
+)
+{
+  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
+} // end of [atspre_g0float_compare_float]
+
+ATSinline()
+atstype_int
+atspre_g0float_compare_double
+(
+  atstype_double f1, atstype_double f2
+)
+{
+  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
+} // end of [atspre_g0float_compare_double]
+
+ATSinline()
+atstype_int
+atspre_g0float_compare_ldouble
+(
+  atstype_ldouble f1, atstype_ldouble f2
+)
+{
+  if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ;
+} // end of [atspre_g0float_compare_ldouble]
+
+/* ****** ****** */
+
+ATSinline()
+atstype_float
+atspre_g0float_min_float
+  (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_min_float]
+ATSinline()
+atstype_double
+atspre_g0float_min_double
+  (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_min_double]
+ATSinline()
+atstype_ldouble
+atspre_g0float_min_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_min_ldouble]
+
+ATSinline()
+atstype_float
+atspre_g0float_max_float
+  (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_max_float]
+ATSinline()
+atstype_double
+atspre_g0float_max_double
+  (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_max_double]
+ATSinline()
+atstype_ldouble
+atspre_g0float_max_ldouble
+  (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? f1 : f2) ; }
+// end of [atspre_g0float_max_ldouble]
+
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_float
+atspre_add_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) + f2) ; }
+// end of [atspre_add_int_float]
+ATSinline()
+atstype_float
+atspre_sub_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) - f2) ; }
+// end of [atspre_sub_int_float]
+ATSinline()
+atstype_float
+atspre_mul_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) * f2) ; }
+// end of [atspre_mul_int_float]
+ATSinline()
+atstype_float
+atspre_div_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) / f2) ; }
+// end of [atspre_div_int_float]
+//
+ATSinline()
+atstype_double
+atspre_add_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) + f2) ; }
+// end of [atspre_add_int_double]
+ATSinline()
+atstype_double
+atspre_sub_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) - f2) ; }
+// end of [atspre_sub_int_double]
+ATSinline()
+atstype_double
+atspre_mul_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) * f2) ; }
+// end of [atspre_mul_int_double]
+ATSinline()
+atstype_double
+atspre_div_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) / f2) ; }
+// end of [atspre_div_int_double]
+//
+ATSinline()
+atstype_ldouble
+atspre_add_int_ldouble
+  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) + f2) ; }
+// end of [atspre_add_int_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_sub_int_ldouble
+  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) - f2) ; }
+// end of [atspre_sub_int_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_mul_int_ldouble
+  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) * f2) ; }
+// end of [atspre_mul_int_ldouble]
+ATSinline()
+atstype_ldouble
+atspre_div_int_ldouble
+  (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) / f2) ; }
+// end of [atspre_div_int_ldouble]
+//
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_float
+atspre_add_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 + ((atstype_float)i2)) ; }
+// end of [atspre_add_float_int]
+ATSinline()
+atstype_float
+atspre_sub_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 - ((atstype_float)i2)) ; }
+// end of [atspre_sub_float_int]
+ATSinline()
+atstype_float
+atspre_mul_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 * ((atstype_float)i2)) ; }
+// end of [atspre_mul_float_int]
+ATSinline()
+atstype_float
+atspre_div_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 / ((atstype_float)i2)) ; }
+// end of [atspre_div_float_int]
+//
+ATSinline()
+atstype_double
+atspre_add_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 + ((atstype_double)i2)) ; }
+// end of [atspre_add_double_int]
+ATSinline()
+atstype_double
+atspre_sub_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 - ((atstype_double)i2)) ; }
+// end of [atspre_sub_double_int]
+ATSinline()
+atstype_double
+atspre_mul_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 * ((atstype_double)i2)) ; }
+// end of [atspre_mul_double_int]
+ATSinline()
+atstype_double
+atspre_div_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 / ((atstype_double)i2)) ; }
+// end of [atspre_div_double_int]
+//
+ATSinline()
+atstype_ldouble
+atspre_add_ldouble_int
+  (atstype_ldouble f1, atstype_int i2) { return (f1 + ((atstype_ldouble)i2)) ; }
+// end of [atspre_add_ldouble_int]
+ATSinline()
+atstype_ldouble
+atspre_sub_ldouble_int
+  (atstype_ldouble f1, atstype_int i2) { return (f1 - ((atstype_ldouble)i2)) ; }
+// end of [atspre_sub_ldouble_int]
+ATSinline()
+atstype_ldouble
+atspre_mul_ldouble_int
+  (atstype_ldouble f1, atstype_int i2) { return (f1 * ((atstype_ldouble)i2)) ; }
+// end of [atspre_mul_ldouble_int]
+ATSinline()
+atstype_ldouble
+atspre_div_ldouble_int
+  (atstype_ldouble f1, atstype_int i2) { return (f1 / ((atstype_ldouble)i2)) ; }
+// end of [atspre_div_ldouble_int]
+//
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_bool
+atspre_lt_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) < f2) ; }
+// end of [atspre_lt_int_float]
+ATSinline()
+atstype_bool
+atspre_lte_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) <= f2) ; }
+// end of [atspre_lte_int_float]
+ATSinline()
+atstype_bool
+atspre_gt_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) > f2) ; }
+// end of [atspre_gt_int_float]
+ATSinline()
+atstype_bool
+atspre_gte_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) >= f2) ; }
+// end of [atspre_gte_int_float]
+ATSinline()
+atstype_bool
+atspre_eq_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) == f2) ; }
+// end of [atspre_eq_int_float]
+ATSinline()
+atstype_bool
+atspre_neq_int_float
+  (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) != f2) ; }
+// end of [atspre_neq_int_float]
+//
+ATSinline()
+atstype_bool
+atspre_lt_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) < f2) ; }
+// end of [atspre_lt_int_double]
+ATSinline()
+atstype_bool
+atspre_lte_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) <= f2) ; }
+// end of [atspre_lte_int_double]
+ATSinline()
+atstype_bool
+atspre_gt_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) > f2) ; }
+// end of [atspre_gt_int_double]
+ATSinline()
+atstype_bool
+atspre_gte_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) >= f2) ; }
+// end of [atspre_gte_int_double]
+ATSinline()
+atstype_bool
+atspre_eq_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) == f2) ; }
+// end of [atspre_eq_int_double]
+ATSinline()
+atstype_bool
+atspre_neq_int_double
+  (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) != f2) ; }
+// end of [atspre_neq_int_double]
+//
+/* ****** ****** */
+//
+//
+ATSinline()
+atstype_bool
+atspre_lt_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 < ((atstype_float)i2)) ; }
+// end of [atspre_lt_float_int]
+ATSinline()
+atstype_bool
+atspre_lte_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 <= ((atstype_float)i2)) ; }
+// end of [atspre_lte_float_int]
+ATSinline()
+atstype_bool
+atspre_gt_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 > ((atstype_float)i2)) ; }
+// end of [atspre_gt_float_int]
+ATSinline()
+atstype_bool
+atspre_gte_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 >= ((atstype_float)i2)) ; }
+// end of [atspre_gte_float_int]
+ATSinline()
+atstype_bool
+atspre_eq_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 == ((atstype_float)i2)) ; }
+// end of [atspre_eq_float_int]
+ATSinline()
+atstype_bool
+atspre_neq_float_int
+  (atstype_float f1, atstype_int i2) { return (f1 != ((atstype_float)i2)) ; }
+// end of [atspre_neq_float_int]
+//
+ATSinline()
+atstype_bool
+atspre_lt_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 < ((atstype_double)i2)) ; }
+// end of [atspre_lt_double_int]
+ATSinline()
+atstype_bool
+atspre_lte_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 <= ((atstype_double)i2)) ; }
+// end of [atspre_lte_double_int]
+ATSinline()
+atstype_bool
+atspre_gt_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 > ((atstype_double)i2)) ; }
+// end of [atspre_gt_double_int]
+ATSinline()
+atstype_bool
+atspre_gte_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 >= ((atstype_double)i2)) ; }
+// end of [atspre_gte_double_int]
+ATSinline()
+atstype_bool
+atspre_eq_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 == ((atstype_double)i2)) ; }
+// end of [atspre_eq_double_int]
+ATSinline()
+atstype_bool
+atspre_neq_double_int
+  (atstype_double f1, atstype_int i2) { return (f1 != ((atstype_double)i2)) ; }
+// end of [atspre_neq_double_int]
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_FLOAT
+
+/* ****** ****** */
+
+/* end of [float.cats] */
+
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/fprintf.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/fprintf.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/fprintf.cats
@@ -0,0 +1,580 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/fprintf.atxt
+** Time of generation: Wed Oct 10 21:08:57 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: September, 2015 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_FPRINTF
+#define ATSLIB_PRELUDE_CATS_FPRINTF
+
+/* ****** ****** */
+//
+// HX-2013-09: declared in [stdio.h]
+//
+#ifndef fprintf
+extern
+int fprintf (FILE *stream, const char *format, ...) ;
+#endif // end of [ifndef]
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_bool (
+  atstype_ref out, atstype_bool x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%s", atspre_bool2string(x)) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_bool] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_bool]
+#define atspre_print_bool(x) atspre_fprint_bool(stdout, (x))
+#define atspre_prerr_bool(x) atspre_fprint_bool(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_char
+(
+  atstype_ref out, atstype_char c
+) {
+  int err = 0 ;
+  err += fprintf ((FILE*)out, "%c", c) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_char] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end of [atspre_fprint_char]
+#define atspre_print_char(c) atspre_fprint_char(stdout, (c))
+#define atspre_prerr_char(c) atspre_fprint_char(stderr, (c))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uchar
+(
+  atstype_ref out, atstype_uchar c
+) {
+  atspre_fprint_char (out, (atstype_char)c) ; return ;
+} // end of [atspre_fprint_uchar]
+#define atspre_print_uchar(c) atspre_fprint_uchar(stdout, (c))
+#define atspre_prerr_uchar(c) atspre_fprint_uchar(stderr, (c))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_schar
+(
+  atstype_ref out, atstype_schar c
+) {
+  atspre_fprint_char (out, (atstype_char)c) ; return ;
+} // end of [atspre_fprint_schar]
+#define atspre_print_schar(c) atspre_fprint_schar(stdout, (c))
+#define atspre_prerr_schar(c) atspre_fprint_schar(stderr, (c))
+
+/* ****** ****** */
+  
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_int
+(
+  atstype_ref out, atstype_int x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%i", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_int] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_int]
+#define atspre_print_int(x) atspre_fprint_int(stdout, (x))
+#define atspre_prerr_int(x) atspre_fprint_int(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_lint
+(
+  atstype_ref out, atstype_lint x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%li", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_lint] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_lint]
+#define atspre_print_lint(x) atspre_fprint_lint(stdout, (x))
+#define atspre_prerr_lint(x) atspre_fprint_lint(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_llint
+(
+  atstype_ref out, atstype_llint x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%lli", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_llint] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_llint]
+#define atspre_print_llint(x) atspre_fprint_llint(stdout, (x))
+#define atspre_prerr_llint(x) atspre_fprint_llint(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_ssize
+(
+  atstype_ref out, atstype_ssize x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%li", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_ssize] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_ssize]
+#define atspre_print_ssize(x) atspre_fprint_ssize(stdout, (x))
+#define atspre_prerr_ssize(x) atspre_fprint_ssize(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uint
+(
+  atstype_ref out, atstype_uint x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%u", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_uint] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_uint]
+#define atspre_print_uint(x) atspre_fprint_uint(stdout, (x))
+#define atspre_prerr_uint(x) atspre_fprint_uint(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_ulint
+(
+  atstype_ref out, atstype_ulint x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%lu", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_ulint] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_ulint]
+#define atspre_print_ulint(x) atspre_fprint_ulint(stdout, (x))
+#define atspre_prerr_ulint(x) atspre_fprint_ulint(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_ullint
+(
+  atstype_ref out, atstype_ullint x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%llu", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_ullint] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_ullint]
+#define atspre_print_ullint(x) atspre_fprint_ullint(stdout, (x))
+#define atspre_prerr_ullint(x) atspre_fprint_ullint(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_size
+(
+  atstype_ref out, atstype_size x
+) {
+  int err = 0 ;
+  atstype_ulint x2 = x ;
+  err += fprintf((FILE*)out, "%lu", x2) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_size] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_size]
+#define atspre_print_size(x) atspre_fprint_size(stdout, (x))
+#define atspre_prerr_size(x) atspre_fprint_size(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_ptr (
+  atstype_ref out, atstype_ptr x
+) {
+  int err ;
+  err = fprintf((FILE*)out, "%p", x) ;
+  return ;
+} // end [atspre_fprint_ptr]
+#define atspre_print_ptr(x) atspre_fprint_ptr(stdout, (x))
+#define atspre_prerr_ptr(x) atspre_fprint_ptr(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_float (
+  atstype_ref r, atstype_float x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)r, "%f", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_float] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_float]
+#define atspre_print_float(x) atspre_fprint_float(stdout, (x))
+#define atspre_prerr_float(x) atspre_fprint_float(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_double (
+  atstype_ref r, atstype_double x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)r, "%f", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_double] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_double]
+#define atspre_print_double(x) atspre_fprint_double(stdout, (x))
+#define atspre_prerr_double(x) atspre_fprint_double(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_ldouble (
+  atstype_ref r, atstype_ldouble x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)r, "%Lf", x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_ldouble] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end [atspre_fprint_ldouble]
+#define atspre_print_ldouble(x) atspre_fprint_ldouble(stdout, (x))
+#define atspre_prerr_ldouble(x) atspre_fprint_ldouble(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_intptr
+(
+  atstype_ref r, atstype_intptr x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ;
+  return ;
+} // end [atspre_fprint_intptr]
+#define atspre_print_intptr(x) atspre_fprint_intptr(stdout, (x))
+#define atspre_prerr_intptr(x) atspre_fprint_intptr(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uintptr
+(
+  atstype_ref r, atstype_uintptr x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ;
+  return ;
+} // end [atspre_fprint_uintptr]
+#define atspre_print_uintptr(x) atspre_fprint_uintptr(stdout, (x))
+#define atspre_prerr_uintptr(x) atspre_fprint_uintptr(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_int8
+(
+  atstype_ref r, atstype_int8 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%i", (atstype_int)x) ;
+  return ;
+} // end [atspre_fprint_int8]
+#define atspre_print_int8(x) atspre_fprint_int8(stdout, (x))
+#define atspre_prerr_int8(x) atspre_fprint_int8(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_int16
+(
+  atstype_ref r, atstype_int16 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%i", (atstype_int)x) ;
+  return ;
+} // end [atspre_fprint_int16]
+#define atspre_print_int16(x) atspre_fprint_int16(stdout, (x))
+#define atspre_prerr_int16(x) atspre_fprint_int16(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_int32
+(
+  atstype_ref r, atstype_int32 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%li", (atstype_lint)x) ;
+  return ;
+} // end [atspre_fprint_int32]
+#define atspre_print_int32(x) atspre_fprint_int32(stdout, (x))
+#define atspre_prerr_int32(x) atspre_fprint_int32(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_int64
+(
+  atstype_ref r, atstype_int64 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ;
+  return ;
+} // end [atspre_fprint_int64]
+#define atspre_print_int64(x) atspre_fprint_int64(stdout, (x))
+#define atspre_prerr_int64(x) atspre_fprint_int64(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uint8
+(
+  atstype_ref r, atstype_uint8 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%u", (atstype_uint)x) ;
+  return ;
+} // end [atspre_fprint_uint8]
+#define atspre_print_uint8(x) atspre_fprint_uint8(stdout, (x))
+#define atspre_prerr_uint8(x) atspre_fprint_uint8(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uint16
+(
+  atstype_ref r, atstype_uint16 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%u", (atstype_uint)x) ;
+  return ;
+} // end [atspre_fprint_uint16]
+#define atspre_print_uint16(x) atspre_fprint_uint16(stdout, (x))
+#define atspre_prerr_uint16(x) atspre_fprint_uint16(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uint32
+(
+  atstype_ref r, atstype_uint32 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%lu", (atstype_ulint)x) ;
+  return ;
+} // end [atspre_fprint_uint32]
+#define atspre_print_uint32(x) atspre_fprint_uint32(stdout, (x))
+#define atspre_prerr_uint32(x) atspre_fprint_uint32(stderr, (x))
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_uint64
+(
+  atstype_ref r, atstype_uint64 x
+) {
+  int err ;
+  err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ;
+  return ;
+} // end [atspre_fprint_uint64]
+#define atspre_print_uint64(x) atspre_fprint_uint64(stdout, (x))
+#define atspre_prerr_uint64(x) atspre_fprint_uint64(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_string
+(
+  atstype_ref out, atstype_string x
+) {
+  int err = 0 ;
+  err += fprintf((FILE*)out, "%s", (char*)x) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_string] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end of [atspre_fprint_string]
+#define atspre_print_string(x) atspre_fprint_string(stdout, (x))
+#define atspre_prerr_string(x) atspre_fprint_string(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_substring
+(
+  atstype_ref out
+, atstype_string x
+, atstype_size st, atstype_size ln  
+) {
+  int err = 0 ;
+  err += fwrite(((char*)x)+st, 1, ln, out) ;
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_substring] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end of [atspre_fprint_substring]
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_stropt
+(
+  atstype_ref out, atstype_stropt x
+) {
+  int err = 0 ;
+  if (!x)
+  {
+    err += fprintf((FILE*)out, "strnone()") ;
+  } else {
+    err += fprintf((FILE*)out, "strsome(%s)", (char*)x) ;
+  }
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_stropt] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end of [atspre_fprint_stropt]
+#define atspre_print_stropt(x) atspre_fprint_stropt(stdout, (x))
+#define atspre_prerr_stropt(x) atspre_fprint_stropt(stderr, (x))
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_fprint_strptr
+(
+  atstype_ref out, atstype_strptr x
+) {
+  int err = 0 ;
+  if (x != 0) {
+    err += fprintf((FILE*)out, "%s", (char*)x) ;
+  } else {
+    err += fprintf((FILE*)out, "%s", "(strnull)") ;
+  } // end of [if]
+/*
+  if (err < 0) {
+    fprintf(stderr, "exit(ATS): [fprint_strptr] failed.") ; exit(1) ;
+  } // end of [if]
+*/
+  return ;
+} // end of [atspre_fprint_strptr]
+#define atspre_print_strptr(x) atspre_fprint_strptr(stdout, (x))
+#define atspre_prerr_strptr(x) atspre_fprint_strptr(stderr, (x))
+
+/* ****** ****** */
+
+#define atspre_fprint_strbuf atspre_fprint_strptr
+#define atspre_print_strbuf(x) atspre_fprint_strbuf(stdout, (x))
+#define atspre_prerr_strbuf(x) atspre_fprint_strbuf(stderr, (x))
+
+/* ****** ****** */
+
+#define atspre_fprint_strnptr atspre_fprint_strptr
+#define atspre_print_strnptr(x) atspre_fprint_strbuf(stdout, (x))
+#define atspre_prerr_strnptr(x) atspre_fprint_strbuf(stderr, (x))
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_FPRINTF
+
+/* ****** ****** */
+
+/* end of [fprintf.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer.cats
@@ -0,0 +1,1275 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer.atxt
+** Time of generation: Wed Oct 10 21:08:54 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER
+#define ATSLIB_PRELUDE_CATS_INTEGER
+
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_int_int(x) ((atstype_int)(x))
+#define \
+atspre_g1int2int_int_int(x) atspre_g0int2int_int_int(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_int_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g1int2uint_int_uint(x) atspre_g0int2uint_int_uint(x)
+//
+/* ****** ****** */
+//
+#define atspre_g0uint2int_uint_int(x) ((atstype_int)(x))
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0uint2uint_uint_uint(x) (x)
+#define \
+atspre_g1uint2uint_uint_uint(x) atspre_g0uint2uint_uint_uint(x)
+//
+/* ****** ****** */
+//
+#define atspre_g0uint2uint_ulint_uint(x) ((atstype_uint)(x))
+#define atspre_g0uint2uint_ulint_ulint(x) (x)
+#define atspre_g0uint2uint_ulint_ullint(x) ((atstype_ullint)(x))
+#define atspre_g1uint2uint_ulint_uint atspre_g0uint2uint_ulint_uint
+#define atspre_g1uint2uint_ulint_ulint atspre_g0uint2uint_ulint_ulint
+#define atspre_g1uint2uint_ulint_ullint atspre_g0uint2uint_ulint_ullint
+//
+/* ****** ****** */
+//
+#define atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x))
+//
+/* ****** ****** */
+//
+extern int atoi (const char *inp) ;
+extern long int atol (const char *inp) ;
+extern long long int atoll (const char *inp) ;
+//
+ATSinline()
+atstype_int
+atspre_g0string2int_int
+  (atstype_string inp) { return atoi((char*)inp) ; }
+ATSinline()
+atstype_lint
+atspre_g0string2int_lint
+  (atstype_string inp) { return atol((char*)inp) ; }
+ATSinline()
+atstype_llint
+atspre_g0string2int_llint
+  (atstype_string inp) { return atoll((char*)inp) ; }
+//
+/* ****** ****** */
+//
+extern
+unsigned long int
+strtoul(const char *nptr, char **endptr, int base);
+extern
+unsigned long long int
+strtoull(const char *nptr, char **endptr, int base);
+//
+ATSinline()
+atstype_uint
+atspre_g0string2uint_uint
+  (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; }
+ATSinline()
+atstype_ulint
+atspre_g0string2uint_ulint
+  (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; }
+ATSinline()
+atstype_ullint
+atspre_g0string2uint_ullint
+  (atstype_string inp) { return strtoull((char*)inp, NULL, 10) ; }
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_int
+atspre_g0int_neg_int
+  (atstype_int x) { return (-x) ; }
+// end of [atspre_g0int_neg_int]
+ATSinline()
+atstype_int
+atspre_g0int_abs_int
+  (atstype_int x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_int]
+ATSinline()
+atstype_int
+atspre_g0int_succ_int
+  (atstype_int x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_int]
+ATSinline()
+atstype_int
+atspre_g0int_pred_int
+  (atstype_int x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_int]
+ATSinline()
+atstype_int
+atspre_g0int_half_int
+  (atstype_int x) { return (x / 2) ; }
+// end of [atspre_g0int_half_int]
+ATSinline()
+atstype_int
+atspre_g0int_add_int
+  (atstype_int x1, atstype_int x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_int]
+ATSinline()
+atstype_int
+atspre_g0int_sub_int
+  (atstype_int x1, atstype_int x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_int]
+ATSinline()
+atstype_int
+atspre_g0int_mul_int
+  (atstype_int x1, atstype_int x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_int]
+ATSinline()
+atstype_int
+atspre_g0int_div_int
+  (atstype_int x1, atstype_int x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_int]
+ATSinline()
+atstype_int
+atspre_g0int_mod_int
+  (atstype_int x1, atstype_int x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_int]
+ATSinline()
+atstype_int
+atspre_g0int_nmod_int
+  (atstype_int x1, atstype_int x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_int]
+ATSinline()
+atstype_int
+atspre_g0int_asl_int
+  (atstype_int x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_int]
+ATSinline()
+atstype_int
+atspre_g0int_asr_int
+  (atstype_int x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_int]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_int]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_int]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_int]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_int]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_int]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_int]
+ATSinline()
+atstype_int
+atspre_g0int_compare_int
+(
+  atstype_int x1, atstype_int x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_int]
+ATSinline()
+atstype_int
+atspre_g0int_max_int
+  (atstype_int x1, atstype_int x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_int]
+ATSinline()
+atstype_int
+atspre_g0int_min_int
+  (atstype_int x1, atstype_int x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_int]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_int (atstype_int x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_int]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_int (atstype_int x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_int]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_int (atstype_int x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_int]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_int (atstype_int x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_int]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_int (atstype_int x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_int]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_int (atstype_int x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_int]
+//
+ATSinline()
+atstype_lint
+atspre_g0int_neg_lint
+  (atstype_lint x) { return (-x) ; }
+// end of [atspre_g0int_neg_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_abs_lint
+  (atstype_lint x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_succ_lint
+  (atstype_lint x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_pred_lint
+  (atstype_lint x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_half_lint
+  (atstype_lint x) { return (x / 2) ; }
+// end of [atspre_g0int_half_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_add_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_sub_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_mul_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_div_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_mod_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_nmod_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_asl_lint
+  (atstype_lint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_asr_lint
+  (atstype_lint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_lint]
+ATSinline()
+atstype_int
+atspre_g0int_compare_lint
+(
+  atstype_lint x1, atstype_lint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_max_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_lint]
+ATSinline()
+atstype_lint
+atspre_g0int_min_lint
+  (atstype_lint x1, atstype_lint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_lint (atstype_lint x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_lint (atstype_lint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_lint (atstype_lint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_lint (atstype_lint x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_lint (atstype_lint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_lint]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_lint (atstype_lint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_lint]
+//
+ATSinline()
+atstype_llint
+atspre_g0int_neg_llint
+  (atstype_llint x) { return (-x) ; }
+// end of [atspre_g0int_neg_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_abs_llint
+  (atstype_llint x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_succ_llint
+  (atstype_llint x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_pred_llint
+  (atstype_llint x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_half_llint
+  (atstype_llint x) { return (x / 2) ; }
+// end of [atspre_g0int_half_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_add_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_sub_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_mul_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_div_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_mod_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_nmod_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_asl_llint
+  (atstype_llint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_asr_llint
+  (atstype_llint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_llint]
+ATSinline()
+atstype_int
+atspre_g0int_compare_llint
+(
+  atstype_llint x1, atstype_llint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_max_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_llint]
+ATSinline()
+atstype_llint
+atspre_g0int_min_llint
+  (atstype_llint x1, atstype_llint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_llint (atstype_llint x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_llint (atstype_llint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_llint (atstype_llint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_llint (atstype_llint x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_llint (atstype_llint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_llint]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_llint (atstype_llint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_llint]
+//
+/* ****** ****** */
+
+#define atspre_g1int_neg_int atspre_g0int_neg_int
+#define atspre_g1int_abs_int atspre_g0int_abs_int
+#define atspre_g1int_succ_int atspre_g0int_succ_int
+#define atspre_g1int_pred_int atspre_g0int_pred_int
+#define atspre_g1int_half_int atspre_g0int_half_int
+#define atspre_g1int_add_int atspre_g0int_add_int
+#define atspre_g1int_sub_int atspre_g0int_sub_int
+#define atspre_g1int_mul_int atspre_g0int_mul_int
+#define atspre_g1int_div_int atspre_g0int_div_int
+#define atspre_g1int_nmod_int atspre_g0int_nmod_int
+#define atspre_g1int_isltz_int atspre_g0int_isltz_int
+#define atspre_g1int_isltez_int atspre_g0int_isltez_int
+#define atspre_g1int_isgtz_int atspre_g0int_isgtz_int
+#define atspre_g1int_isgtez_int atspre_g0int_isgtez_int
+#define atspre_g1int_iseqz_int atspre_g0int_iseqz_int
+#define atspre_g1int_isneqz_int atspre_g0int_isneqz_int
+#define atspre_g1int_lt_int atspre_g0int_lt_int
+#define atspre_g1int_lte_int atspre_g0int_lte_int
+#define atspre_g1int_gt_int atspre_g0int_gt_int
+#define atspre_g1int_gte_int atspre_g0int_gte_int
+#define atspre_g1int_eq_int atspre_g0int_eq_int
+#define atspre_g1int_neq_int atspre_g0int_neq_int
+#define atspre_g1int_compare_int atspre_g0int_compare_int
+#define atspre_g1int_max_int atspre_g0int_max_int
+#define atspre_g1int_min_int atspre_g0int_min_int
+
+/* ****** ****** */
+
+#define atspre_g1int_neg_lint atspre_g0int_neg_lint
+#define atspre_g1int_succ_lint atspre_g0int_succ_lint
+#define atspre_g1int_pred_lint atspre_g0int_pred_lint
+#define atspre_g1int_half_lint atspre_g0int_half_lint
+#define atspre_g1int_add_lint atspre_g0int_add_lint
+#define atspre_g1int_sub_lint atspre_g0int_sub_lint
+#define atspre_g1int_mul_lint atspre_g0int_mul_lint
+#define atspre_g1int_div_lint atspre_g0int_div_lint
+#define atspre_g1int_nmod_lint atspre_g0int_nmod_lint
+#define atspre_g1int_isltz_lint atspre_g0int_isltz_lint
+#define atspre_g1int_isltez_lint atspre_g0int_isltez_lint
+#define atspre_g1int_isgtz_lint atspre_g0int_isgtz_lint
+#define atspre_g1int_isgtez_lint atspre_g0int_isgtez_lint
+#define atspre_g1int_iseqz_lint atspre_g0int_iseqz_lint
+#define atspre_g1int_isneqz_lint atspre_g0int_isneqz_lint
+#define atspre_g1int_lt_lint atspre_g0int_lt_lint
+#define atspre_g1int_lte_lint atspre_g0int_lte_lint
+#define atspre_g1int_gt_lint atspre_g0int_gt_lint
+#define atspre_g1int_gte_lint atspre_g0int_gte_lint
+#define atspre_g1int_eq_lint atspre_g0int_eq_lint
+#define atspre_g1int_neq_lint atspre_g0int_neq_lint
+#define atspre_g1int_compare_lint atspre_g0int_compare_lint
+#define atspre_g1int_max_lint atspre_g0int_max_lint
+#define atspre_g1int_min_lint atspre_g0int_min_lint
+
+/* ****** ****** */
+
+#define atspre_g1int_neg_llint atspre_g0int_neg_llint
+#define atspre_g1int_succ_llint atspre_g0int_succ_llint
+#define atspre_g1int_pred_llint atspre_g0int_pred_llint
+#define atspre_g1int_half_llint atspre_g0int_half_llint
+#define atspre_g1int_add_llint atspre_g0int_add_llint
+#define atspre_g1int_sub_llint atspre_g0int_sub_llint
+#define atspre_g1int_mul_llint atspre_g0int_mul_llint
+#define atspre_g1int_div_llint atspre_g0int_div_llint
+#define atspre_g1int_nmod_llint atspre_g0int_nmod_llint
+#define atspre_g1int_isltz_llint atspre_g0int_isltz_llint
+#define atspre_g1int_isltez_llint atspre_g0int_isltez_llint
+#define atspre_g1int_isgtz_llint atspre_g0int_isgtz_llint
+#define atspre_g1int_isgtez_llint atspre_g0int_isgtez_llint
+#define atspre_g1int_iseqz_llint atspre_g0int_iseqz_llint
+#define atspre_g1int_isneqz_llint atspre_g0int_isneqz_llint
+#define atspre_g1int_lt_llint atspre_g0int_lt_llint
+#define atspre_g1int_lte_llint atspre_g0int_lte_llint
+#define atspre_g1int_gt_llint atspre_g0int_gt_llint
+#define atspre_g1int_gte_llint atspre_g0int_gte_llint
+#define atspre_g1int_eq_llint atspre_g0int_eq_llint
+#define atspre_g1int_neq_llint atspre_g0int_neq_llint
+#define atspre_g1int_compare_llint atspre_g0int_compare_llint
+#define atspre_g1int_max_llint atspre_g0int_max_llint
+#define atspre_g1int_min_llint atspre_g0int_min_llint
+
+/* ****** ****** */
+//
+ATSinline()
+atstype_uint
+atspre_g0uint_succ_uint
+  (atstype_uint x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_pred_uint
+  (atstype_uint x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_half_uint
+  (atstype_uint x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_add_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_sub_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_mul_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_div_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_mod_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_lsl_uint
+  (atstype_uint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_lsr_uint
+  (atstype_uint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_lnot_uint
+  (atstype_uint x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_lor_uint
+  (atstype_uint x, atstype_uint y) { return (x | y) ; }
+// end of [atspre_g0uint_uint_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_land_uint
+  (atstype_uint x, atstype_uint y) { return (x & y) ; }
+// end of [atspre_g0uint_uint_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_lxor_uint
+  (atstype_uint x, atstype_uint y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uint_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uint]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uint
+(
+  atstype_uint x1, atstype_uint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_max_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uint]
+ATSinline()
+atstype_uint
+atspre_g0uint_min_uint
+  (atstype_uint x1, atstype_uint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uint (atstype_uint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uint (atstype_uint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uint (atstype_uint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uint (atstype_uint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uint]
+//
+ATSinline()
+atstype_ulint
+atspre_g0uint_succ_ulint
+  (atstype_ulint x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_pred_ulint
+  (atstype_ulint x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_half_ulint
+  (atstype_ulint x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_add_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_sub_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_mul_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_div_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_mod_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_lsl_ulint
+  (atstype_ulint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_lsr_ulint
+  (atstype_ulint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_lnot_ulint
+  (atstype_ulint x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_lor_ulint
+  (atstype_ulint x, atstype_ulint y) { return (x | y) ; }
+// end of [atspre_g0uint_ulint_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_land_ulint
+  (atstype_ulint x, atstype_ulint y) { return (x & y) ; }
+// end of [atspre_g0uint_ulint_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_lxor_ulint
+  (atstype_ulint x, atstype_ulint y) { return (x ^ y) ; }
+// end of [atspre_g0uint_ulint_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_ulint]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_ulint
+(
+  atstype_ulint x1, atstype_ulint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_max_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_ulint]
+ATSinline()
+atstype_ulint
+atspre_g0uint_min_ulint
+  (atstype_ulint x1, atstype_ulint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_ulint (atstype_ulint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_ulint (atstype_ulint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_ulint (atstype_ulint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_ulint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_ulint (atstype_ulint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_ulint]
+//
+ATSinline()
+atstype_ullint
+atspre_g0uint_succ_ullint
+  (atstype_ullint x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_pred_ullint
+  (atstype_ullint x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_half_ullint
+  (atstype_ullint x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_add_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_sub_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_mul_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_div_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_mod_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_lsl_ullint
+  (atstype_ullint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_lsr_ullint
+  (atstype_ullint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_lnot_ullint
+  (atstype_ullint x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_lor_ullint
+  (atstype_ullint x, atstype_ullint y) { return (x | y) ; }
+// end of [atspre_g0uint_ullint_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_land_ullint
+  (atstype_ullint x, atstype_ullint y) { return (x & y) ; }
+// end of [atspre_g0uint_ullint_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_lxor_ullint
+  (atstype_ullint x, atstype_ullint y) { return (x ^ y) ; }
+// end of [atspre_g0uint_ullint_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_ullint]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_ullint
+(
+  atstype_ullint x1, atstype_ullint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_max_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_ullint]
+ATSinline()
+atstype_ullint
+atspre_g0uint_min_ullint
+  (atstype_ullint x1, atstype_ullint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_ullint (atstype_ullint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_ullint (atstype_ullint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_ullint (atstype_ullint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_ullint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_ullint (atstype_ullint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_ullint]
+//
+/* ****** ****** */
+
+#define atspre_g1uint_succ_uint atspre_g0uint_succ_uint
+#define atspre_g1uint_pred_uint atspre_g0uint_pred_uint
+#define atspre_g1uint_half_uint atspre_g0uint_half_uint
+#define atspre_g1uint_add_uint atspre_g0uint_add_uint
+#define atspre_g1uint_sub_uint atspre_g0uint_sub_uint
+#define atspre_g1uint_mul_uint atspre_g0uint_mul_uint
+#define atspre_g1uint_div_uint atspre_g0uint_div_uint
+#define atspre_g1uint_mod_uint atspre_g0uint_mod_uint
+#define atspre_g1uint_isgtz_uint atspre_g0uint_isgtz_uint
+#define atspre_g1uint_iseqz_uint atspre_g0uint_iseqz_uint
+#define atspre_g1uint_isneqz_uint atspre_g0uint_isneqz_uint
+#define atspre_g1uint_lt_uint atspre_g0uint_lt_uint
+#define atspre_g1uint_lte_uint atspre_g0uint_lte_uint
+#define atspre_g1uint_gt_uint atspre_g0uint_gt_uint
+#define atspre_g1uint_gte_uint atspre_g0uint_gte_uint
+#define atspre_g1uint_eq_uint atspre_g0uint_eq_uint
+#define atspre_g1uint_neq_uint atspre_g0uint_neq_uint
+#define atspre_g1uint_compare_uint atspre_g0uint_compare_uint
+#define atspre_g1uint_max_uint atspre_g0uint_max_uint
+#define atspre_g1uint_min_uint atspre_g0uint_min_uint
+
+/* ****** ****** */
+
+#define atspre_g1uint_succ_ulint atspre_g0uint_succ_ulint
+#define atspre_g1uint_pred_ulint atspre_g0uint_pred_ulint
+#define atspre_g1uint_half_ulint atspre_g0uint_half_ulint
+#define atspre_g1uint_add_ulint atspre_g0uint_add_ulint
+#define atspre_g1uint_sub_ulint atspre_g0uint_sub_ulint
+#define atspre_g1uint_mul_ulint atspre_g0uint_mul_ulint
+#define atspre_g1uint_div_ulint atspre_g0uint_div_ulint
+#define atspre_g1uint_mod_ulint atspre_g0uint_mod_ulint
+#define atspre_g1uint_isgtz_ulint atspre_g0uint_isgtz_ulint
+#define atspre_g1uint_iseqz_ulint atspre_g0uint_iseqz_ulint
+#define atspre_g1uint_isneqz_ulint atspre_g0uint_isneqz_ulint
+#define atspre_g1uint_lt_ulint atspre_g0uint_lt_ulint
+#define atspre_g1uint_lte_ulint atspre_g0uint_lte_ulint
+#define atspre_g1uint_gt_ulint atspre_g0uint_gt_ulint
+#define atspre_g1uint_gte_ulint atspre_g0uint_gte_ulint
+#define atspre_g1uint_eq_ulint atspre_g0uint_eq_ulint
+#define atspre_g1uint_neq_ulint atspre_g0uint_neq_ulint
+#define atspre_g1uint_compare_ulint atspre_g0uint_compare_ulint
+#define atspre_g1uint_max_ulint atspre_g0uint_max_ulint
+#define atspre_g1uint_min_ulint atspre_g0uint_min_ulint
+
+/* ****** ****** */
+
+#define atspre_g1uint_succ_ullint atspre_g0uint_succ_ullint
+#define atspre_g1uint_pred_ullint atspre_g0uint_pred_ullint
+#define atspre_g1uint_half_ullint atspre_g0uint_half_ullint
+#define atspre_g1uint_add_ullint atspre_g0uint_add_ullint
+#define atspre_g1uint_sub_ullint atspre_g0uint_sub_ullint
+#define atspre_g1uint_mul_ullint atspre_g0uint_mul_ullint
+#define atspre_g1uint_div_ullint atspre_g0uint_div_ullint
+#define atspre_g1uint_mod_ullint atspre_g0uint_mod_ullint
+#define atspre_g1uint_isgtz_ullint atspre_g0uint_isgtz_ullint
+#define atspre_g1uint_iseqz_ullint atspre_g0uint_iseqz_ullint
+#define atspre_g1uint_isneqz_ullint atspre_g0uint_isneqz_ullint
+#define atspre_g1uint_lt_ullint atspre_g0uint_lt_ullint
+#define atspre_g1uint_lte_ullint atspre_g0uint_lte_ullint
+#define atspre_g1uint_gt_ullint atspre_g0uint_gt_ullint
+#define atspre_g1uint_gte_ullint atspre_g0uint_gte_ullint
+#define atspre_g1uint_eq_ullint atspre_g0uint_eq_ullint
+#define atspre_g1uint_neq_ullint atspre_g0uint_neq_ullint
+#define atspre_g1uint_compare_ullint atspre_g0uint_compare_ullint
+#define atspre_g1uint_max_ullint atspre_g0uint_max_ullint
+#define atspre_g1uint_min_ullint atspre_g0uint_min_ullint
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER
+
+/* ****** ****** */
+
+/* end of [integer.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_fixed.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_fixed.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_fixed.cats
@@ -0,0 +1,1425 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer_fixed.atxt
+** Time of generation: Wed Oct 10 21:08:57 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED
+#define ATSLIB_PRELUDE_CATS_INTEGER_FIXED
+
+/* ****** ****** */
+
+#include <stdint.h>
+
+/* ****** ****** */
+
+typedef int8_t atstype_int8 ;
+typedef int16_t atstype_int16 ;
+typedef int32_t atstype_int32 ;
+typedef int64_t atstype_int64 ;
+
+typedef uint8_t atstype_uint8 ;
+typedef uint16_t atstype_uint16 ;
+typedef uint32_t atstype_uint32 ;
+typedef uint64_t atstype_uint64 ;
+
+/* ****** ****** */
+
+#define \
+atspre_g0int2int_int8_int(x) ((atstype_int)(x))
+#define \
+atspre_g0int2int_int16_int(x) ((atstype_int)(x))
+#define \
+atspre_g0int2int_int32_int(x) ((atstype_int)(x))
+#define \
+atspre_g0int2int_int64_int(x) ((atstype_int)(x))
+
+/* ****** ****** */
+//
+ATSinline()
+atstype_int8
+atspre_g0int_neg_int8
+  (atstype_int8 x) { return (-x) ; }
+// end of [atspre_g0int_neg_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_abs_int8
+  (atstype_int8 x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_succ_int8
+  (atstype_int8 x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_pred_int8
+  (atstype_int8 x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_half_int8
+  (atstype_int8 x) { return (x / 2) ; }
+// end of [atspre_g0int_half_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_add_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_sub_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_mul_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_div_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_mod_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_nmod_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_asl_int8
+  (atstype_int8 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_asr_int8
+  (atstype_int8 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_int8]
+ATSinline()
+atstype_int
+atspre_g0int_compare_int8
+(
+  atstype_int8 x1, atstype_int8 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_max_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_int8]
+ATSinline()
+atstype_int8
+atspre_g0int_min_int8
+  (atstype_int8 x1, atstype_int8 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_int8 (atstype_int8 x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_int8 (atstype_int8 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_int8 (atstype_int8 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_int8 (atstype_int8 x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_int8 (atstype_int8 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_int8]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_int8 (atstype_int8 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_int8]
+ATSinline()
+atstype_int16
+atspre_g0int_neg_int16
+  (atstype_int16 x) { return (-x) ; }
+// end of [atspre_g0int_neg_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_abs_int16
+  (atstype_int16 x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_succ_int16
+  (atstype_int16 x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_pred_int16
+  (atstype_int16 x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_half_int16
+  (atstype_int16 x) { return (x / 2) ; }
+// end of [atspre_g0int_half_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_add_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_sub_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_mul_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_div_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_mod_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_nmod_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_asl_int16
+  (atstype_int16 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_asr_int16
+  (atstype_int16 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_int16]
+ATSinline()
+atstype_int
+atspre_g0int_compare_int16
+(
+  atstype_int16 x1, atstype_int16 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_max_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_int16]
+ATSinline()
+atstype_int16
+atspre_g0int_min_int16
+  (atstype_int16 x1, atstype_int16 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_int16 (atstype_int16 x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_int16 (atstype_int16 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_int16 (atstype_int16 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_int16 (atstype_int16 x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_int16 (atstype_int16 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_int16]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_int16 (atstype_int16 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_int16]
+ATSinline()
+atstype_int32
+atspre_g0int_neg_int32
+  (atstype_int32 x) { return (-x) ; }
+// end of [atspre_g0int_neg_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_abs_int32
+  (atstype_int32 x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_succ_int32
+  (atstype_int32 x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_pred_int32
+  (atstype_int32 x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_half_int32
+  (atstype_int32 x) { return (x / 2) ; }
+// end of [atspre_g0int_half_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_add_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_sub_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_mul_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_div_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_mod_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_nmod_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_asl_int32
+  (atstype_int32 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_asr_int32
+  (atstype_int32 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_int32]
+ATSinline()
+atstype_int
+atspre_g0int_compare_int32
+(
+  atstype_int32 x1, atstype_int32 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_max_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_int32]
+ATSinline()
+atstype_int32
+atspre_g0int_min_int32
+  (atstype_int32 x1, atstype_int32 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_int32 (atstype_int32 x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_int32 (atstype_int32 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_int32 (atstype_int32 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_int32 (atstype_int32 x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_int32 (atstype_int32 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_int32]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_int32 (atstype_int32 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_int32]
+ATSinline()
+atstype_int64
+atspre_g0int_neg_int64
+  (atstype_int64 x) { return (-x) ; }
+// end of [atspre_g0int_neg_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_abs_int64
+  (atstype_int64 x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_succ_int64
+  (atstype_int64 x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_pred_int64
+  (atstype_int64 x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_half_int64
+  (atstype_int64 x) { return (x / 2) ; }
+// end of [atspre_g0int_half_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_add_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_sub_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_mul_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_div_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_mod_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_nmod_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_asl_int64
+  (atstype_int64 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_asr_int64
+  (atstype_int64 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_int64]
+ATSinline()
+atstype_int
+atspre_g0int_compare_int64
+(
+  atstype_int64 x1, atstype_int64 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_max_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_int64]
+ATSinline()
+atstype_int64
+atspre_g0int_min_int64
+  (atstype_int64 x1, atstype_int64 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_int64 (atstype_int64 x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_int64 (atstype_int64 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_int64 (atstype_int64 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_int64 (atstype_int64 x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_int64 (atstype_int64 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_int64]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_int64 (atstype_int64 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_int64]
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_int8_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0int2uint_int16_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0int2uint_int32_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0int2uint_int64_uint(x) ((atstype_uint)(x))
+//
+#define \
+atspre_g0uint2int_uint8_int(x) ((atstype_int)(x))
+#define \
+atspre_g0uint2int_uint16_int(x) ((atstype_int)(x))
+#define \
+atspre_g0uint2int_uint32_int(x) ((atstype_int)(x))
+#define \
+atspre_g0uint2int_uint64_int(x) ((atstype_int)(x))
+//
+#define \
+atspre_g0uint2uint_uint8_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0uint2uint_uint16_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0uint2uint_uint32_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g0uint2uint_uint64_uint(x) ((atstype_uint)(x))
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_uint8
+atspre_g0uint_succ_uint8
+  (atstype_uint8 x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_pred_uint8
+  (atstype_uint8 x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_half_uint8
+  (atstype_uint8 x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_add_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_sub_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_mul_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_div_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_mod_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_lsl_uint8
+  (atstype_uint8 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_lsr_uint8
+  (atstype_uint8 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_lnot_uint8
+  (atstype_uint8 x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_lor_uint8
+  (atstype_uint8 x, atstype_uint8 y) { return (x | y) ; }
+// end of [atspre_g0uint_uint8_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_land_uint8
+  (atstype_uint8 x, atstype_uint8 y) { return (x & y) ; }
+// end of [atspre_g0uint_uint8_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_lxor_uint8
+  (atstype_uint8 x, atstype_uint8 y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uint8_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uint8]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uint8
+(
+  atstype_uint8 x1, atstype_uint8 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_max_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uint8]
+ATSinline()
+atstype_uint8
+atspre_g0uint_min_uint8
+  (atstype_uint8 x1, atstype_uint8 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uint8 (atstype_uint8 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uint8 (atstype_uint8 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uint8 (atstype_uint8 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uint8]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uint8 (atstype_uint8 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uint8]
+ATSinline()
+atstype_uint16
+atspre_g0uint_succ_uint16
+  (atstype_uint16 x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_pred_uint16
+  (atstype_uint16 x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_half_uint16
+  (atstype_uint16 x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_add_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_sub_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_mul_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_div_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_mod_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_lsl_uint16
+  (atstype_uint16 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_lsr_uint16
+  (atstype_uint16 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_lnot_uint16
+  (atstype_uint16 x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_lor_uint16
+  (atstype_uint16 x, atstype_uint16 y) { return (x | y) ; }
+// end of [atspre_g0uint_uint16_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_land_uint16
+  (atstype_uint16 x, atstype_uint16 y) { return (x & y) ; }
+// end of [atspre_g0uint_uint16_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_lxor_uint16
+  (atstype_uint16 x, atstype_uint16 y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uint16_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uint16]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uint16
+(
+  atstype_uint16 x1, atstype_uint16 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_max_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uint16]
+ATSinline()
+atstype_uint16
+atspre_g0uint_min_uint16
+  (atstype_uint16 x1, atstype_uint16 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uint16 (atstype_uint16 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uint16 (atstype_uint16 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uint16 (atstype_uint16 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uint16]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uint16 (atstype_uint16 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uint16]
+ATSinline()
+atstype_uint32
+atspre_g0uint_succ_uint32
+  (atstype_uint32 x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_pred_uint32
+  (atstype_uint32 x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_half_uint32
+  (atstype_uint32 x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_add_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_sub_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_mul_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_div_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_mod_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_lsl_uint32
+  (atstype_uint32 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_lsr_uint32
+  (atstype_uint32 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_lnot_uint32
+  (atstype_uint32 x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_lor_uint32
+  (atstype_uint32 x, atstype_uint32 y) { return (x | y) ; }
+// end of [atspre_g0uint_uint32_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_land_uint32
+  (atstype_uint32 x, atstype_uint32 y) { return (x & y) ; }
+// end of [atspre_g0uint_uint32_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_lxor_uint32
+  (atstype_uint32 x, atstype_uint32 y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uint32_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uint32]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uint32
+(
+  atstype_uint32 x1, atstype_uint32 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_max_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uint32]
+ATSinline()
+atstype_uint32
+atspre_g0uint_min_uint32
+  (atstype_uint32 x1, atstype_uint32 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uint32 (atstype_uint32 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uint32 (atstype_uint32 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uint32 (atstype_uint32 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uint32]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uint32 (atstype_uint32 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uint32]
+ATSinline()
+atstype_uint64
+atspre_g0uint_succ_uint64
+  (atstype_uint64 x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_pred_uint64
+  (atstype_uint64 x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_half_uint64
+  (atstype_uint64 x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_add_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_sub_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_mul_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_div_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_mod_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_lsl_uint64
+  (atstype_uint64 x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_lsr_uint64
+  (atstype_uint64 x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_lnot_uint64
+  (atstype_uint64 x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_lor_uint64
+  (atstype_uint64 x, atstype_uint64 y) { return (x | y) ; }
+// end of [atspre_g0uint_uint64_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_land_uint64
+  (atstype_uint64 x, atstype_uint64 y) { return (x & y) ; }
+// end of [atspre_g0uint_uint64_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_lxor_uint64
+  (atstype_uint64 x, atstype_uint64 y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uint64_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uint64]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uint64
+(
+  atstype_uint64 x1, atstype_uint64 x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_max_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uint64]
+ATSinline()
+atstype_uint64
+atspre_g0uint_min_uint64
+  (atstype_uint64 x1, atstype_uint64 x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uint64 (atstype_uint64 x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uint64 (atstype_uint64 x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uint64 (atstype_uint64 x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uint64]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uint64 (atstype_uint64 x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uint64]
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED
+
+/* ****** ****** */
+
+/* end of [integer_fixed.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_long.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_long.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_long.cats
@@ -0,0 +1,124 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer_long.atxt
+** Time of generation: Wed Oct 10 21:08:55 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG
+#define ATSLIB_PRELUDE_CATS_INTEGER_LONG
+
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_int_lint(x) ((atstype_lint)(x))
+#define \
+atspre_g1int2int_int_lint(x) atspre_g0int2int_int_lint(x)
+//
+#define \
+atspre_g0int2int_int_llint(x) ((atstype_llint)(x))
+#define \
+atspre_g1int2int_int_llint(x) atspre_g0int2int_int_llint(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_lint_int(x) ((atstype_int)(x))
+#define \
+atspre_g1int2int_lint_int(x) atspre_g0int2int_lint_int(x)
+//
+#define \
+atspre_g0int2int_lint_lint(x) ((atstype_lint)(x))
+#define \
+atspre_g1int2int_lint_lint(x) atspre_g0int2int_lint_lint(x)
+//
+#define \
+atspre_g0int2int_lint_llint(x) ((atstype_llint)(x))
+#define \
+atspre_g1int2int_lint_llint(x) atspre_g0int2int_lint_llint(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_int_ulint(x) ((atstype_ulint)(x))
+#define \
+atspre_g1int2uint_int_ulint(x) atspre_g0int2uint_int_ulint(x)
+//
+#define \
+atspre_g0int2uint_int_ullint(x) ((atstype_ullint)(x))
+#define \
+atspre_g1int2uint_int_ullint(x) atspre_g0int2uint_int_ullint(x)
+//
+#define \
+atspre_g0int2uint_lint_ulint(x) ((atstype_ulint)(x))
+#define \
+atspre_g1int2uint_lint_ulint(x) atspre_g0int2uint_lint_ulint(x)
+//
+#define \
+atspre_g0int2uint_lint_ullint(x) ((atstype_ullint)(x))
+#define \
+atspre_g1int2uint_lint_ullint(x) atspre_g0int2uint_lint_ullint(x)
+//
+#define \
+atspre_g0int2uint_llint_ullint(x) ((atstype_ullint)(x))
+#define \
+atspre_g1int2uint_llint_ullint(x) atspre_g0int2uint_llint_ullint(x)
+//
+/* ****** ****** */
+
+#define atspre_g0uint2int_uint_lint(x) ((atstype_lint)(x))
+#define atspre_g0uint2int_uint_llint(x) ((atstype_llint)(x))
+#define atspre_g1uint2int_uint_int atspre_g0uint2int_uint_int
+#define atspre_g1uint2int_uint_lint atspre_g0uint2int_uint_lint
+#define atspre_g1uint2int_uint_llint atspre_g0uint2int_uint_llint
+#define atspre_g0uint2uint_uint_ulint(x) ((atstype_ulint)(x))
+#define atspre_g0uint2uint_uint_ullint(x) ((atstype_ullint)(x))
+#define atspre_g1uint2uint_uint_ulint atspre_g0uint2uint_uint_ulint
+#define atspre_g1uint2uint_uint_ullint atspre_g0uint2uint_uint_ullint
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG
+
+/* ****** ****** */
+
+/* end of [integer_long.cats] */
+
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_ptr.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_ptr.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_ptr.cats
@@ -0,0 +1,475 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer_ptr.atxt
+** Time of generation: Wed Oct 10 21:08:56 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR
+#define ATSLIB_PRELUDE_CATS_INTEGER_PTR
+
+/* ****** ****** */
+
+#include <stdint.h>
+
+/* ****** ****** */
+
+typedef intptr_t atstype_intptr ;
+typedef uintptr_t atstype_uintptr ;
+
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_int_intptr(x) ((atstype_intptr)(x))
+#define \
+atspre_g0int2int_lint_intptr(x) ((atstype_intptr)(x))
+//
+#define \
+atspre_g0int2uint_int_uintptr(x) ((atstype_uintptr)(x))
+//
+#define \
+atspre_g0uint2uint_uint_uintptr(x) ((atstype_uintptr)(x))
+#define \
+atspre_g0uint2uint_ulint_uintptr(x) ((atstype_uintptr)(x))
+//
+/* ****** ****** */
+//
+#define \
+atspre_g1int2int_int_intptr atspre_g0int2int_int_intptr
+#define \
+atspre_g1int2int_lint_intptr atspre_g0int2int_lint_intptr
+//
+#define \
+atspre_g1int2uint_int_uintptr atspre_g0int2uint_int_uintptr
+//
+#define \
+atspre_g1uint2uint_uint_uintptr atspre_g0uint2uint_uint_uintptr
+#define \
+atspre_g1uint2uint_ulint_uintptr atspre_g0uint2uint_ulint_uintptr
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_intptr
+atspre_g0int_neg_intptr
+  (atstype_intptr x) { return (-x) ; }
+// end of [atspre_g0int_neg_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_abs_intptr
+  (atstype_intptr x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_succ_intptr
+  (atstype_intptr x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_pred_intptr
+  (atstype_intptr x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_half_intptr
+  (atstype_intptr x) { return (x / 2) ; }
+// end of [atspre_g0int_half_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_add_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_sub_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_mul_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_div_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_mod_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_nmod_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_asl_intptr
+  (atstype_intptr x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_asr_intptr
+  (atstype_intptr x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_intptr]
+ATSinline()
+atstype_int
+atspre_g0int_compare_intptr
+(
+  atstype_intptr x1, atstype_intptr x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_max_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_intptr]
+ATSinline()
+atstype_intptr
+atspre_g0int_min_intptr
+  (atstype_intptr x1, atstype_intptr x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_intptr (atstype_intptr x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_intptr (atstype_intptr x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_intptr (atstype_intptr x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_intptr (atstype_intptr x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_intptr (atstype_intptr x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_intptr]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_intptr (atstype_intptr x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_intptr]
+//
+#define atspre_g1int_abs_intptr atspre_g0int_abs_intptr
+#define atspre_g1int_neg_intptr atspre_g0int_neg_intptr
+#define atspre_g1int_succ_intptr atspre_g0int_succ_intptr
+#define atspre_g1int_pred_intptr atspre_g0int_pred_intptr
+#define atspre_g1int_half_intptr atspre_g0int_half_intptr
+#define atspre_g1int_add_intptr atspre_g0int_add_intptr
+#define atspre_g1int_sub_intptr atspre_g0int_sub_intptr
+#define atspre_g1int_mul_intptr atspre_g0int_mul_intptr
+#define atspre_g1int_div_intptr atspre_g0int_div_intptr
+#define atspre_g1int_nmod_intptr atspre_g0int_nmod_intptr
+#define atspre_g1int_lt_intptr atspre_g0int_lt_intptr
+#define atspre_g1int_lte_intptr atspre_g0int_lte_intptr
+#define atspre_g1int_gt_intptr atspre_g0int_gt_intptr
+#define atspre_g1int_gte_intptr atspre_g0int_gte_intptr
+#define atspre_g1int_eq_intptr atspre_g0int_eq_intptr
+#define atspre_g1int_neq_intptr atspre_g0int_neq_intptr
+#define atspre_g1int_compare_intptr atspre_g0int_compare_intptr
+#define atspre_g1int_max_intptr atspre_g0int_max_intptr
+#define atspre_g1int_min_intptr atspre_g0int_min_intptr
+#define atspre_g1int_isltz_intptr atspre_g0int_isltz_intptr
+#define atspre_g1int_isltez_intptr atspre_g0int_isltez_intptr
+#define atspre_g1int_isgtz_intptr atspre_g0int_isgtz_intptr
+#define atspre_g1int_isgtez_intptr atspre_g0int_isgtez_intptr
+#define atspre_g1int_iseqz_intptr atspre_g0int_iseqz_intptr
+#define atspre_g1int_isneqz_intptr atspre_g0int_isneqz_intptr
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_uintptr
+atspre_g0uint_succ_uintptr
+  (atstype_uintptr x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_pred_uintptr
+  (atstype_uintptr x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_half_uintptr
+  (atstype_uintptr x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_add_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_sub_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_mul_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_div_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_mod_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_lsl_uintptr
+  (atstype_uintptr x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_lsr_uintptr
+  (atstype_uintptr x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_lnot_uintptr
+  (atstype_uintptr x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_lor_uintptr
+  (atstype_uintptr x, atstype_uintptr y) { return (x | y) ; }
+// end of [atspre_g0uint_uintptr_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_land_uintptr
+  (atstype_uintptr x, atstype_uintptr y) { return (x & y) ; }
+// end of [atspre_g0uint_uintptr_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_lxor_uintptr
+  (atstype_uintptr x, atstype_uintptr y) { return (x ^ y) ; }
+// end of [atspre_g0uint_uintptr_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_uintptr]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_uintptr
+(
+  atstype_uintptr x1, atstype_uintptr x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_max_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_uintptr]
+ATSinline()
+atstype_uintptr
+atspre_g0uint_min_uintptr
+  (atstype_uintptr x1, atstype_uintptr x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_uintptr (atstype_uintptr x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_uintptr (atstype_uintptr x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_uintptr (atstype_uintptr x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_uintptr]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_uintptr (atstype_uintptr x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_uintptr]
+//
+#define atspre_g1uint_succ_uintptr atspre_g0uint_succ_uintptr
+#define atspre_g1uint_pred_uintptr atspre_g0uint_pred_uintptr
+#define atspre_g1uint_half_uintptr atspre_g0uint_half_uintptr
+#define atspre_g1uint_add_uintptr atspre_g0uint_add_uintptr
+#define atspre_g1uint_sub_uintptr atspre_g0uint_sub_uintptr
+#define atspre_g1uint_mul_uintptr atspre_g0uint_mul_uintptr
+#define atspre_g1uint_div_uintptr atspre_g0uint_div_uintptr
+#define atspre_g1uint_mod_uintptr atspre_g0uint_mod_uintptr
+#define atspre_g1uint_lt_uintptr atspre_g0uint_lt_uintptr
+#define atspre_g1uint_lte_uintptr atspre_g0uint_lte_uintptr
+#define atspre_g1uint_gt_uintptr atspre_g0uint_gt_uintptr
+#define atspre_g1uint_gte_uintptr atspre_g0uint_gte_uintptr
+#define atspre_g1uint_eq_uintptr atspre_g0uint_eq_uintptr
+#define atspre_g1uint_neq_uintptr atspre_g0uint_neq_uintptr
+#define atspre_g1uint_compare_uintptr atspre_g0uint_compare_uintptr
+#define atspre_g1uint_max_uintptr atspre_g0uint_max_uintptr
+#define atspre_g1uint_min_uintptr atspre_g0uint_min_uintptr
+#define atspre_g1uint_isltez_uintptr atspre_g0uint_isltez_uintptr
+#define atspre_g1uint_isgtz_uintptr atspre_g0uint_isgtz_uintptr
+#define atspre_g1uint_iseqz_uintptr atspre_g0uint_iseqz_uintptr
+#define atspre_g1uint_isneqz_uintptr atspre_g0uint_isneqz_uintptr
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR
+
+/* ****** ****** */
+
+/* end of [integer_ptr.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_short.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_short.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_short.cats
@@ -0,0 +1,479 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer_short.atxt
+** Time of generation: Wed Oct 10 21:08:55 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT
+#define ATSLIB_PRELUDE_CATS_INTEGER_SHORT
+
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_int_sint(x) ((atstype_sint)(x))
+#define \
+atspre_g1int2int_int_sint(x) atspre_g0int2int_int_sint(x)
+#define \
+atspre_g0uint2int_uint_sint(x) ((atstype_sint)(x))
+#define \
+atspre_g1uint2int_uint_sint(x) atspre_g0uint2int_uint_sint(x)
+//
+#define \
+atspre_g0int2uint_int_usint(x) ((atstype_usint)(x))
+#define \
+atspre_g1int2uint_int_usint(x) atspre_g0int2uint_int_usint(x)
+#define \
+atspre_g0uint2uint_uint_usint(x) ((atstype_usint)(x))
+#define \
+atspre_g1uint2uint_uint_usint(x) atspre_g0uint2uint_uint_usint(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_sint_usint(x) ((atstype_usint)(x))
+#define \
+atspre_g1int2uint_sint_usint(x) atspre_g0int2uint_sint_usint(x)
+#define \
+atspre_g0uint2int_usint_sint(x) ((atstype_usint)(x))
+#define \
+atspre_g1uint2int_usint_sint(x) atspre_g0uint2int_sint_usint(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_sint_int(x) ((atstype_int)(x))
+#define \
+atspre_g1int2int_sint_int(x) atspre_g0int2int_sint_int(x)
+//
+#define \
+atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x))
+#define \
+atspre_g1uint2uint_usint_uint(x) atspre_g0uint2uint_usint_uint(x)
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_sint
+atspre_g0int_neg_sint
+  (atstype_sint x) { return (-x) ; }
+// end of [atspre_g0int_neg_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_abs_sint
+  (atstype_sint x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_succ_sint
+  (atstype_sint x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_pred_sint
+  (atstype_sint x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_half_sint
+  (atstype_sint x) { return (x / 2) ; }
+// end of [atspre_g0int_half_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_add_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_sub_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_mul_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_div_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_mod_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_nmod_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_asl_sint
+  (atstype_sint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_asr_sint
+  (atstype_sint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_sint]
+ATSinline()
+atstype_int
+atspre_g0int_compare_sint
+(
+  atstype_sint x1, atstype_sint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_max_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_sint]
+ATSinline()
+atstype_sint
+atspre_g0int_min_sint
+  (atstype_sint x1, atstype_sint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_sint (atstype_sint x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_sint (atstype_sint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_sint (atstype_sint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_sint (atstype_sint x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_sint (atstype_sint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_sint]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_sint (atstype_sint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_sint]
+//
+#define atspre_g1int_abs_sint atspre_g0int_abs_sint
+#define atspre_g1int_neg_sint atspre_g0int_neg_sint
+#define atspre_g1int_succ_sint atspre_g0int_succ_sint
+#define atspre_g1int_pred_sint atspre_g0int_pred_sint
+#define atspre_g1int_half_sint atspre_g0int_half_sint
+#define atspre_g1int_add_sint atspre_g0int_add_sint
+#define atspre_g1int_sub_sint atspre_g0int_sub_sint
+#define atspre_g1int_mul_sint atspre_g0int_mul_sint
+#define atspre_g1int_div_sint atspre_g0int_div_sint
+#define atspre_g1int_nmod_sint atspre_g0int_nmod_sint
+#define atspre_g1int_lt_sint atspre_g0int_lt_sint
+#define atspre_g1int_lte_sint atspre_g0int_lte_sint
+#define atspre_g1int_gt_sint atspre_g0int_gt_sint
+#define atspre_g1int_gte_sint atspre_g0int_gte_sint
+#define atspre_g1int_eq_sint atspre_g0int_eq_sint
+#define atspre_g1int_neq_sint atspre_g0int_neq_sint
+#define atspre_g1int_compare_sint atspre_g0int_compare_sint
+#define atspre_g1int_max_sint atspre_g0int_max_sint
+#define atspre_g1int_min_sint atspre_g0int_min_sint
+#define atspre_g1int_isltz_sint atspre_g0int_isltz_sint
+#define atspre_g1int_isltez_sint atspre_g0int_isltez_sint
+#define atspre_g1int_isgtz_sint atspre_g0int_isgtz_sint
+#define atspre_g1int_isgtez_sint atspre_g0int_isgtez_sint
+#define atspre_g1int_iseqz_sint atspre_g0int_iseqz_sint
+#define atspre_g1int_isneqz_sint atspre_g0int_isneqz_sint
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_usint
+atspre_g0uint_succ_usint
+  (atstype_usint x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_pred_usint
+  (atstype_usint x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_half_usint
+  (atstype_usint x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_add_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_sub_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_mul_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_div_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_mod_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_lsl_usint
+  (atstype_usint x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_lsr_usint
+  (atstype_usint x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_lnot_usint
+  (atstype_usint x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_lor_usint
+  (atstype_usint x, atstype_usint y) { return (x | y) ; }
+// end of [atspre_g0uint_usint_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_land_usint
+  (atstype_usint x, atstype_usint y) { return (x & y) ; }
+// end of [atspre_g0uint_usint_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_lxor_usint
+  (atstype_usint x, atstype_usint y) { return (x ^ y) ; }
+// end of [atspre_g0uint_usint_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_usint]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_usint
+(
+  atstype_usint x1, atstype_usint x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_max_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_usint]
+ATSinline()
+atstype_usint
+atspre_g0uint_min_usint
+  (atstype_usint x1, atstype_usint x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_usint (atstype_usint x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_usint (atstype_usint x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_usint (atstype_usint x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_usint]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_usint (atstype_usint x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_usint]
+//
+#define atspre_g1uint_succ_usint atspre_g0uint_succ_usint
+#define atspre_g1uint_pred_usint atspre_g0uint_pred_usint
+#define atspre_g1uint_half_usint atspre_g0uint_half_usint
+#define atspre_g1uint_add_usint atspre_g0uint_add_usint
+#define atspre_g1uint_sub_usint atspre_g0uint_sub_usint
+#define atspre_g1uint_mul_usint atspre_g0uint_mul_usint
+#define atspre_g1uint_div_usint atspre_g0uint_div_usint
+#define atspre_g1uint_mod_usint atspre_g0uint_mod_usint
+#define atspre_g1uint_lt_usint atspre_g0uint_lt_usint
+#define atspre_g1uint_lte_usint atspre_g0uint_lte_usint
+#define atspre_g1uint_gt_usint atspre_g0uint_gt_usint
+#define atspre_g1uint_gte_usint atspre_g0uint_gte_usint
+#define atspre_g1uint_eq_usint atspre_g0uint_eq_usint
+#define atspre_g1uint_neq_usint atspre_g0uint_neq_usint
+#define atspre_g1uint_compare_usint atspre_g0uint_compare_usint
+#define atspre_g1uint_max_usint atspre_g0uint_max_usint
+#define atspre_g1uint_min_usint atspre_g0uint_min_usint
+#define atspre_g1uint_isltez_usint atspre_g0uint_isltez_usint
+#define atspre_g1uint_isgtz_usint atspre_g0uint_isgtz_usint
+#define atspre_g1uint_iseqz_usint atspre_g0uint_iseqz_usint
+#define atspre_g1uint_isneqz_usint atspre_g0uint_isneqz_usint
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT
+
+/* ****** ****** */
+
+/* end of [integer_short.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_size.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_size.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/integer_size.cats
@@ -0,0 +1,533 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/integer_size.atxt
+** Time of generation: Wed Oct 10 21:08:55 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE
+#define ATSLIB_PRELUDE_CATS_INTEGER_SIZE
+
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_int_size(x) ((atstype_size)(x))
+#define \
+atspre_g1int2uint_int_size(x) atspre_g0int2uint_int_size(x)
+#define \
+atspre_g0uint2uint_uint_size(x) ((atstype_size)(x))
+#define \
+atspre_g1uint2uint_uint_size(x) atspre_g0uint2uint_uint_size(x)
+//
+#define \
+atspre_g0int2int_int_ssize(x) ((atstype_ssize)(x))
+#define \
+atspre_g1int2int_int_ssize(x) atspre_g0int2int_int_ssize(x)
+#define \
+atspre_g0uint2int_uint_ssize(x) ((atstype_ssize)(x))
+#define \
+atspre_g1uint2int_uint_ssize(x) atspre_g0uint2int_uint_ssize(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2uint_lint_size(x) ((atstype_size)(x))
+#define \
+atspre_g1int2uint_lint_size(x) atspre_g0int2uint_lint_size(x)
+#define \
+atspre_g0uint2uint_ulint_size(x) ((atstype_size)(x))
+#define \
+atspre_g1uint2uint_ulint_size(x) atspre_g0uint2uint_ulint_size(x)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_lint_ssize(ssz) ((atstype_ssize)(ssz))
+#define \
+atspre_g1int2int_lint_ssize(ssz) atspre_g0int2int_lint_ssize(ssz)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0uint2int_size_int(sz) ((atstype_int)(sz))
+#define \
+atspre_g1uint2int_size_int(sz) atspre_g0uint2int_size_int(sz)
+//
+#define \
+atspre_g0uint2uint_size_uint(sz) ((atstype_uint)(sz))
+#define \
+atspre_g1uint2uint_size_uint(sz) atspre_g0uint2uint_size_uint(sz)
+//
+#define \
+atspre_g0uint2uint_size_size(sz) ((atstype_size)(sz))
+#define \
+atspre_g1uint2uint_size_size(sz) atspre_g0uint2uint_size_size(sz)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0int2int_ssize_int(ssz) ((atstype_int)(ssz))
+#define \
+atspre_g1int2int_ssize_int(ssz) atspre_g0int2int_ssize_int(ssz)
+//
+#define \
+atspre_g0int2uint_ssize_uint(ssz) ((atstype_uint)(ssz))
+#define \
+atspre_g1int2uint_ssize_uint(ssz) atspre_g0int2uint_ssize_uint(ssz)
+//
+#define \
+atspre_g0int2int_ssize_ssize(ssz) ((atstype_ssize)(ssz))
+#define \
+atspre_g1int2int_ssize_ssize(ssz) atspre_g0int2int_ssize_ssize(ssz)
+//
+/* ****** ****** */
+//
+#define \
+atspre_g0uint2int_size_ssize(sz) ((atstype_ssize)(sz))
+#define \
+atspre_g1uint2int_size_ssize(sz) atspre_g0uint2int_size_ssize(sz)
+#define \
+atspre_g0int2uint_ssize_size(ssz) ((atstype_size)(ssz))
+#define \
+atspre_g1int2uint_ssize_size(ssz) atspre_g0int2uint_ssize_size(ssz)
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_size
+atspre_g0uint_succ_size
+  (atstype_size x) { return (x + 1) ; }
+// end of [atspre_g0uint_succ_size]
+ATSinline()
+atstype_size
+atspre_g0uint_pred_size
+  (atstype_size x) { return (x - 1) ; }
+// end of [atspre_g0uint_pred_size]
+ATSinline()
+atstype_size
+atspre_g0uint_half_size
+  (atstype_size x) { return (x >> 1) ; }
+// end of [atspre_g0uint_half_size]
+ATSinline()
+atstype_size
+atspre_g0uint_add_size
+  (atstype_size x1, atstype_size x2) { return (x1 + x2) ; }
+// end of [atspre_g0uint_add_size]
+ATSinline()
+atstype_size
+atspre_g0uint_sub_size
+  (atstype_size x1, atstype_size x2) { return (x1 - x2) ; }
+// end of [atspre_g0uint_sub_size]
+ATSinline()
+atstype_size
+atspre_g0uint_mul_size
+  (atstype_size x1, atstype_size x2) { return (x1 * x2) ; }
+// end of [atspre_g0uint_mul_size]
+ATSinline()
+atstype_size
+atspre_g0uint_div_size
+  (atstype_size x1, atstype_size x2) { return (x1 / x2) ; }
+// end of [atspre_g0uint_div_size]
+ATSinline()
+atstype_size
+atspre_g0uint_mod_size
+  (atstype_size x1, atstype_size x2) { return (x1 % x2) ; }
+// end of [atspre_g0uint_mod_size]
+ATSinline()
+atstype_size
+atspre_g0uint_lsl_size
+  (atstype_size x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0uint_lsl_size]
+ATSinline()
+atstype_size
+atspre_g0uint_lsr_size
+  (atstype_size x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0uint_lsr_size]
+ATSinline()
+atstype_size
+atspre_g0uint_lnot_size
+  (atstype_size x) { return ~(x) ; }
+// end of [atspre_g0uint_lnot_size]
+ATSinline()
+atstype_size
+atspre_g0uint_lor_size
+  (atstype_size x, atstype_size y) { return (x | y) ; }
+// end of [atspre_g0uint_size_size]
+ATSinline()
+atstype_size
+atspre_g0uint_land_size
+  (atstype_size x, atstype_size y) { return (x & y) ; }
+// end of [atspre_g0uint_size_size]
+ATSinline()
+atstype_size
+atspre_g0uint_lxor_size
+  (atstype_size x, atstype_size y) { return (x ^ y) ; }
+// end of [atspre_g0uint_size_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_lt_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lt_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_lte_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_lte_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_gt_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gt_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_gte_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_gte_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_eq_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_eq_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_neq_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_neq_size]
+ATSinline()
+atstype_int
+atspre_g0uint_compare_size
+(
+  atstype_size x1, atstype_size x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0uint_compare_size]
+ATSinline()
+atstype_size
+atspre_g0uint_max_size
+  (atstype_size x1, atstype_size x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_max_size]
+ATSinline()
+atstype_size
+atspre_g0uint_min_size
+  (atstype_size x1, atstype_size x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0uint_min_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_isltez_size (atstype_size x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isltez_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_isgtz_size (atstype_size x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isgtz_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_iseqz_size (atstype_size x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_iseqz_size]
+ATSinline()
+atstype_bool
+atspre_g0uint_isneqz_size (atstype_size x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0uint_isneqz_size]
+//
+#define atspre_g1uint_succ_size atspre_g0uint_succ_size
+#define atspre_g1uint_pred_size atspre_g0uint_pred_size
+#define atspre_g1uint_half_size atspre_g0uint_half_size
+#define atspre_g1uint_add_size atspre_g0uint_add_size
+#define atspre_g1uint_sub_size atspre_g0uint_sub_size
+#define atspre_g1uint_mul_size atspre_g0uint_mul_size
+#define atspre_g1uint_div_size atspre_g0uint_div_size
+#define atspre_g1uint_mod_size atspre_g0uint_mod_size
+#define atspre_g1uint_lt_size atspre_g0uint_lt_size
+#define atspre_g1uint_lte_size atspre_g0uint_lte_size
+#define atspre_g1uint_gt_size atspre_g0uint_gt_size
+#define atspre_g1uint_gte_size atspre_g0uint_gte_size
+#define atspre_g1uint_eq_size atspre_g0uint_eq_size
+#define atspre_g1uint_neq_size atspre_g0uint_neq_size
+#define atspre_g1uint_compare_size atspre_g0uint_compare_size
+#define atspre_g1uint_max_size atspre_g0uint_max_size
+#define atspre_g1uint_min_size atspre_g0uint_min_size
+#define atspre_g1uint_isltez_size atspre_g0uint_isltez_size
+#define atspre_g1uint_isgtz_size atspre_g0uint_isgtz_size
+#define atspre_g1uint_iseqz_size atspre_g0uint_iseqz_size
+#define atspre_g1uint_isneqz_size atspre_g0uint_isneqz_size
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_ssize
+atspre_g0int_neg_ssize
+  (atstype_ssize x) { return (-x) ; }
+// end of [atspre_g0int_neg_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_abs_ssize
+  (atstype_ssize x) { return (x >= 0 ? x : -x) ; }
+// end of [atspre_g0int_abs_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_succ_ssize
+  (atstype_ssize x) { return (x + 1) ; }
+// end of [atspre_g0int_succ_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_pred_ssize
+  (atstype_ssize x) { return (x - 1) ; }
+// end of [atspre_g0int_pred_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_half_ssize
+  (atstype_ssize x) { return (x / 2) ; }
+// end of [atspre_g0int_half_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_add_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 + x2) ; }
+// end of [atspre_g0int_add_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_sub_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 - x2) ; }
+// end of [atspre_g0int_sub_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_mul_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 * x2) ; }
+// end of [atspre_g0int_mul_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_div_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 / x2) ; }
+// end of [atspre_g0int_div_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_mod_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_mod_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_nmod_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; }
+// end of [atspre_g0int_nmod_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_asl_ssize
+  (atstype_ssize x, atstype_int n) { return (x << n) ; }
+// end of [atspre_g0int_asl_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_asr_ssize
+  (atstype_ssize x, atstype_int n) { return (x >> n) ; }
+// end of [atspre_g0int_asr_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_lt_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 < x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lt_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_lte_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 <= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_lte_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_gt_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 > x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gt_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_gte_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 >= x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_gte_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_eq_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 == x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_eq_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_neq_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  return (x1 != x2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_neq_ssize]
+ATSinline()
+atstype_int
+atspre_g0int_compare_ssize
+(
+  atstype_ssize x1, atstype_ssize x2
+) {
+  if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ;
+} // end of [atspre_g0int_compare_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_max_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 >= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_max_ssize]
+ATSinline()
+atstype_ssize
+atspre_g0int_min_ssize
+  (atstype_ssize x1, atstype_ssize x2) { return (x1 <= x2 ? x1 : x2) ; }
+// end of [atspre_g0int_min_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_isltz_ssize (atstype_ssize x)
+{
+  return (x < 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltz_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_isltez_ssize (atstype_ssize x)
+{
+  return (x <= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isltez_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtz_ssize (atstype_ssize x)
+{
+  return (x > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtz_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_isgtez_ssize (atstype_ssize x)
+{
+  return (x >= 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isgtez_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_iseqz_ssize (atstype_ssize x)
+{
+  return (x == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_iseqz_ssize]
+ATSinline()
+atstype_bool
+atspre_g0int_isneqz_ssize (atstype_ssize x)
+{
+  return (x != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_g0int_isneqz_ssize]
+//
+#define atspre_g1int_abs_ssize atspre_g0int_abs_ssize
+#define atspre_g1int_neg_ssize atspre_g0int_neg_ssize
+#define atspre_g1int_succ_ssize atspre_g0int_succ_ssize
+#define atspre_g1int_pred_ssize atspre_g0int_pred_ssize
+#define atspre_g1int_half_ssize atspre_g0int_half_ssize
+#define atspre_g1int_add_ssize atspre_g0int_add_ssize
+#define atspre_g1int_sub_ssize atspre_g0int_sub_ssize
+#define atspre_g1int_mul_ssize atspre_g0int_mul_ssize
+#define atspre_g1int_div_ssize atspre_g0int_div_ssize
+#define atspre_g1int_nmod_ssize atspre_g0int_nmod_ssize
+#define atspre_g1int_lt_ssize atspre_g0int_lt_ssize
+#define atspre_g1int_lte_ssize atspre_g0int_lte_ssize
+#define atspre_g1int_gt_ssize atspre_g0int_gt_ssize
+#define atspre_g1int_gte_ssize atspre_g0int_gte_ssize
+#define atspre_g1int_eq_ssize atspre_g0int_eq_ssize
+#define atspre_g1int_neq_ssize atspre_g0int_neq_ssize
+#define atspre_g1int_compare_ssize atspre_g0int_compare_ssize
+#define atspre_g1int_max_ssize atspre_g0int_max_ssize
+#define atspre_g1int_min_ssize atspre_g0int_min_ssize
+#define atspre_g1int_isltz_ssize atspre_g0int_isltz_ssize
+#define atspre_g1int_isltez_ssize atspre_g0int_isltez_ssize
+#define atspre_g1int_isgtz_ssize atspre_g0int_isgtz_ssize
+#define atspre_g1int_isgtez_ssize atspre_g0int_isgtez_ssize
+#define atspre_g1int_iseqz_ssize atspre_g0int_iseqz_ssize
+#define atspre_g1int_isneqz_ssize atspre_g0int_isneqz_ssize
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_size
+atspre_g0string2uint_size
+  (atstype_string inp)
+  { return strtoul((char*)inp, NULL, 10) ; }
+//
+ATSinline()
+atstype_ssize
+atspre_g0string2int_ssize
+  (atstype_string inp) { return atol((char*)inp) ; }
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE
+
+/* ****** ****** */
+
+/* end of [integer_size.cats] */
+
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/list.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/list.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/list.cats
@@ -0,0 +1,55 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/list.atxt
+** Time of generation: Wed Oct 10 21:08:57 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_LIST
+#define ATSLIB_PRELUDE_CATS_LIST
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_LIST
+
+/* ****** ****** */
+
+/* end of [list.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrix.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrix.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrix.cats
@@ -0,0 +1,55 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/matrix.atxt
+** Time of generation: Wed Oct 10 21:08:59 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_MATRIX
+#define ATSLIB_PRELUDE_CATS_MATRIX
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_MATRIX
+
+/* ****** ****** */
+
+/* end of [matrix.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrixptr.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrixptr.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/matrixptr.cats
@@ -0,0 +1,64 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/matrixptr.atxt
+** Time of generation: Wed Oct 10 21:08:59 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR
+#define ATSLIB_PRELUDE_CATS_MATRIXPTR
+
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_matrixptr_free
+  (atstype_arrptr ptr) { ATS_MFREE (ptr) ; return ; }
+// end of [atspre_matrixptr_free]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR
+
+/* ****** ****** */
+
+/* end of [matrixptr.cats] */
+
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/memory.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/memory.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/memory.cats
@@ -0,0 +1,72 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/memory.atxt
+** Time of generation: Wed Oct 10 21:08:57 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_MEMORY
+#define ATSLIB_PRELUDE_CATS_MEMORY
+
+/* ****** ****** */
+
+#define atspre_minit_gc ATS_MINIT
+
+/* ****** ****** */
+
+#define atspre_mfree_gc ATS_MFREE
+
+/* ****** ****** */
+
+#define atspre_malloc_gc ATS_MALLOC
+
+/* ****** ****** */
+
+#define atspre_calloc_gc ATS_CALLOC
+#define atspre_realloc_gc ATS_REALLOC
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_MEMORY
+
+/* ****** ****** */
+
+/* end of [memory.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/option.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/option.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/option.cats
@@ -0,0 +1,55 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/option.atxt
+** Time of generation: Wed Oct 10 21:08:58 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_OPTION
+#define ATSLIB_PRELUDE_CATS_OPTION
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_OPTION
+
+/* ****** ****** */
+
+/* end of [option.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/pointer.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/pointer.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/pointer.cats
@@ -0,0 +1,254 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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.
+*) */
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/pointer.atxt
+** Time of generation: Wed Oct 10 21:08:54 2018
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: February, 2012 *)
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_POINTER
+#define ATSLIB_PRELUDE_CATS_POINTER
+
+/* ****** ****** */
+
+#ifndef memset
+extern
+void *memset(void *bufp, int c, size_t n) ;
+#endif // #ifndef
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atspre_ptr_null () { return (void*)0 ; }
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_ptr_is_null
+  (atstype_ptr p) {
+  return (p == (void*)0) ? atsbool_true : atsbool_false ;
+} // end of [atspre_ptr_is_null]
+#define atspre_ptr0_is_null atspre_ptr_is_null
+#define atspre_ptr1_is_null atspre_ptr_is_null
+
+ATSinline()
+atstype_bool
+atspre_ptr_isnot_null
+  (atstype_ptr p) {
+  return (p != (void*)0) ? atsbool_true : atsbool_false ;
+} // end of [atspre_ptr_isnot_null]
+#define atspre_ptr0_isnot_null atspre_ptr_isnot_null
+#define atspre_ptr1_isnot_null atspre_ptr_isnot_null
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ptr
+atspre_add_ptr_bsz
+  (atstype_ptr p, atstype_size ofs) { return ((char*)p + ofs) ; }
+// end of [atspre_add_ptr_bsz]
+#define atspre_add_ptr0_bsz atspre_add_ptr_bsz
+#define atspre_add_ptr1_bsz atspre_add_ptr_bsz
+
+ATSinline()
+atstype_ptr
+atspre_sub_ptr_bsz
+  (atstype_ptr p, atstype_size ofs) { return ((char*)p - ofs) ; }
+// end of [atspre_sub_ptr_bsz]
+#define atspre_sub_ptr0_bsz atspre_sub_ptr_bsz
+#define atspre_sub_ptr1_bsz atspre_sub_ptr_bsz
+
+/* ****** ****** */
+
+ATSinline()
+atstype_ssize
+atspre_sub_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) { return ((char*)p1 - (char*)p2) ; }
+// end of [atspre_sub_ptr_ptr]
+#define atspre_sub_ptr0_ptr0 atspre_sub_ptr_ptr
+#define atspre_sub_ptr1_ptr1 atspre_sub_ptr_ptr
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_lt_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 < p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lt_ptr_ptr]
+#define atspre_lt_ptr0_ptr0 atspre_lt_ptr_ptr
+#define atspre_lt_ptr1_ptr1 atspre_lt_ptr_ptr
+
+ATSinline()
+atstype_bool
+atspre_lte_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 <= p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_lte_ptr_ptr]
+#define atspre_lte_ptr0_ptr0 atspre_lte_ptr_ptr
+#define atspre_lte_ptr1_ptr1 atspre_lte_ptr_ptr
+
+ATSinline()
+atstype_bool
+atspre_gt_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 > p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gt_ptr_ptr]
+#define atspre_gt_ptr0_ptr0 atspre_gt_ptr_ptr
+#define atspre_gt_ptr1_ptr1 atspre_gt_ptr_ptr
+
+ATSinline()
+atstype_bool
+atspre_gte_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 >= p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gte_ptr_ptr]
+#define atspre_gte_ptr0_ptr0 atspre_gte_ptr_ptr
+#define atspre_gte_ptr1_ptr1 atspre_gte_ptr_ptr
+
+ATSinline()
+atstype_bool
+atspre_eq_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 == p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_eq_ptr_ptr]
+#define atspre_eq_ptr0_ptr0 atspre_eq_ptr_ptr
+#define atspre_eq_ptr1_ptr1 atspre_eq_ptr_ptr
+
+ATSinline()
+atstype_bool
+atspre_neq_ptr_ptr
+  (atstype_ptr p1, atstype_ptr p2) {
+  return (p1 != p2 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_neq_ptr_ptr]
+#define atspre_neq_ptr0_ptr0 atspre_neq_ptr_ptr
+#define atspre_neq_ptr1_ptr1 atspre_neq_ptr_ptr
+
+
+ATSinline()
+atstype_int
+atspre_compare_ptr_ptr
+(
+  atstype_ptr p1, atstype_ptr p2
+) {
+  if (p1 >= p2) {
+    if (p1 > p2) return 1 ; else return 0 ;
+  } else return (-1) ;
+} // end of [atspre_compare_ptr_ptr]
+#define atspre_compare_ptr0_ptr0 atspre_compare_ptr_ptr
+#define atspre_compare_ptr1_ptr1 atspre_compare_ptr_ptr
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_gt_ptr_intz
+  (atstype_ptr p, atstype_int _)
+{
+  return (p > 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_gt_ptr_intz]
+#define atspre_gt_ptr0_intz atspre_gt_ptr_intz
+#define atspre_gt_ptr1_intz atspre_gt_ptr_intz
+
+ATSinline()
+atstype_bool
+atspre_eq_ptr_intz
+  (atstype_ptr p, atstype_int _)
+{
+  return (p == 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_eq_ptr_intz]
+#define atspre_eq_ptr0_intz atspre_eq_ptr_intz
+#define atspre_eq_ptr1_intz atspre_eq_ptr_intz
+  
+ATSinline()
+atstype_bool
+atspre_neq_ptr_intz
+  (atstype_ptr p, atstype_int _)
+{
+  return (p != 0 ? atsbool_true : atsbool_false) ;
+} // end of [atspre_neq_ptr_intz]
+#define atspre_neq_ptr0_intz atspre_neq_ptr_intz
+#define atspre_neq_ptr1_intz atspre_neq_ptr_intz
+
+/* ****** ****** */
+//
+#define atspre_aptr_null() atsptr_null
+//
+#define atspre_aptr_is_null atspre_ptr_is_null
+#define atspre_aptr_isnot_null atspre_ptr_isnot_null
+//
+/* ****** ****** */
+//
+#define atspre_cptr_null() atsptr_null
+//
+#define atspre_cptr_is_null atspre_ptr_is_null
+#define atspre_cptr_isnot_null atspre_ptr_isnot_null
+//
+/* ****** ****** */
+
+#define atspre_gt_cptr_intz atspre_gt_ptr_intz
+#define atspre_eq_cptr_intz atspre_eq_ptr_intz
+#define atspre_neq_cptr_intz atspre_neq_ptr_intz
+
+/* ****** ****** */
+//
+#define atspre_ptr_free atspre_mfree_gc
+#define atspre_ptr_alloc_tsz atspre_malloc_gc
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atspre_ptr_nullize_tsz
+(
+  atstype_ptr p, atstype_size tsz
+) {
+  memset (p, 0, tsz) ; return /*void*/ ;
+} // end of [atspre_ptr_nullize_tsz]
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_POINTER
+
+/* ****** ****** */
+
+/* end of [pointer.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/string.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/string.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/string.cats
@@ -0,0 +1,262 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: April, 2012 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/string.atxt
+** Time of generation: Wed Oct 10 21:08:56 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_STRING
+#define ATSLIB_PRELUDE_CATS_STRING
+
+/* ****** ****** */
+//
+// [string.h]
+//
+extern
+size_t strlen (const char *str) ;
+extern
+int // (sign)
+strcmp (const char *x1, const char *x2) ;
+//
+extern
+char *strchr(const char *str1, int c2) ;
+extern
+char *strrchr(const char *str1, int c2) ;
+extern
+char *strstr(const char *str1, const char *str2) ;
+//
+extern
+size_t strspn(const char *str1, const char *acc2) ;
+extern
+size_t strcspn(const char *str1, const char *rej2) ;
+//
+#ifndef memcpy
+extern
+void *memcpy(void *dest, const void *src, size_t n) ;
+#endif // #ifndef
+//
+/* ****** ****** */
+
+#define atspre_stropt_none() atsptr_null
+
+/* ****** ****** */
+
+ATSinline()
+atstype_bool
+atspre_lt_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn < 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_lt_string_string]
+
+ATSinline()
+atstype_bool
+atspre_lte_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn <= 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_lte_string_string]
+
+ATSinline()
+atstype_bool
+atspre_gt_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn > 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_gt_string_string]
+
+ATSinline()
+atstype_bool
+atspre_gte_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn >= 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_gte_string_string]
+
+ATSinline()
+atstype_bool
+atspre_eq_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn == 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_eq_string_string]
+
+ATSinline()
+atstype_bool
+atspre_neq_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  int sgn = strcmp((char*)x1, (char*)x2) ;
+  return (sgn != 0 ? atsbool_true : atsbool_false) ;
+} // [atspre_neq_string_string]
+
+/* ****** ****** */
+
+#define atspre_string_equal atspre_eq_string_string
+#define atspre_string_noteq atspre_neq_string_string
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_compare_string_string
+(
+  atstype_string x1, atstype_string x2
+) {
+  return atspre_int2sgn(strcmp((char*)x1, (char*)x2)) ;
+} // [atspre_compare_string_string]
+
+/* ****** ****** */
+
+#define atspre_strcmp strcmp
+#define atspre_strlen strlen
+#define atspre_strchr strchr
+#define atspre_strrchr strrchr
+#define atspre_strstr strstr
+#define atspre_strspn strspn
+#define atspre_strcspn strcspn
+
+#define atspre_string_memcpy memcpy
+
+/* ****** ****** */
+//
+// HX-2013-09: declared in [stdio.h]
+//
+#ifndef snprintf
+extern
+int snprintf (char *str, size_t size, const char *format, ...) ;
+#endif // end of [ifndef]
+//
+/* ****** ****** */
+//
+ATSinline()
+atstype_string
+atspre_g0int2string_int
+  (atstype_int x)
+{
+  size_t n0 ;
+  char *res ;
+  size_t ntot ;
+  n0 = 4 ;
+  res = ATS_MALLOC(n0) ;
+  ntot = snprintf(res, n0, "%i", x) ;
+  if (ntot >= n0)
+  {
+    ATS_MFREE(res) ;
+    res = (char*)ATS_MALLOC(ntot+1) ;
+    ntot = snprintf(res, ntot+1, "%i", x) ;
+  }
+  return res ;
+}
+//
+ATSinline()
+atstype_string
+atspre_g0int2string_lint
+  (atstype_lint x)
+{
+  size_t n0 ;
+  char *res ;
+  size_t ntot ;
+  n0 = 4 ;
+  res = ATS_MALLOC(n0) ;
+  ntot = snprintf(res, n0, "%li", x) ;
+  if (ntot >= n0)
+  {
+    ATS_MFREE(res) ;
+    res = (char*)ATS_MALLOC(ntot+1) ;
+    ntot = snprintf(res, ntot+1, "%li", x) ;
+  }
+  return res ;
+}
+//
+ATSinline()
+atstype_string
+atspre_g0int2string_llint
+  (atstype_llint x)
+{
+  size_t n0 ;
+  char *res ;
+  size_t ntot ;
+  n0 = 8 ;
+  res = ATS_MALLOC(n0) ;
+  ntot = snprintf(res, n0, "%lli", x) ;
+  if (ntot >= n0)
+  {
+    ATS_MFREE(res) ;
+    res = (char*)ATS_MALLOC(ntot+1) ;
+    ntot = snprintf(res, ntot+1, "%lli", x) ;
+  }
+  return res ;
+}
+//
+/* ****** ****** */
+//
+#include <stdarg.h>
+//
+// HX-2013-11:
+// these are implemented in [string.dats]
+//
+extern
+atstype_string // Strptr0
+atspre_string_make_snprintf(atstype_string fmt, ...) ;
+extern
+atstype_string // Strptr0
+atspre_string_make_vsnprintf
+  (atstype_size bsz0, atstype_string fmt, va_list ap0) ;
+//
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_STRING
+
+/* ****** ****** */
+
+/* end of [string.cats] */
diff --git a/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/strptr.cats b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/strptr.cats
new file mode 100644
--- /dev/null
+++ b/.atspkg/contrib/ats-includes-0.3.13/prelude/CATS/strptr.cats
@@ -0,0 +1,94 @@
+/***********************************************************************/
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/***********************************************************************/
+
+/* (*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2010-2015 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: gmhwxiATgmailDOTcom *)
+(* Start time: March, 2013 *)
+*/
+
+/* ****** ****** */
+
+/*
+** Source:
+** $PATSHOME/prelude/CATS/CODEGEN/strptr.atxt
+** Time of generation: Wed Oct 10 21:08:56 2018
+*/
+
+/* ****** ****** */
+
+#ifndef ATSLIB_PRELUDE_CATS_STRPTR
+#define ATSLIB_PRELUDE_CATS_STRPTR
+
+/* ****** ****** */
+//
+// [string.h]
+//
+extern
+int // (sign)
+strcmp(const char *x1, const char *x2) ;
+
+/* ****** ****** */
+
+#define atspre_strptr_null() atsptr_null
+
+/* ****** ****** */
+
+#define atspre_strptr_free atspre_mfree_gc
+#define atspre_strnptr_free atspre_mfree_gc
+
+/* ****** ****** */
+
+ATSinline()
+atstype_int
+atspre_compare_strptr_strptr
+(
+  atstype_strptr x1, atstype_strptr x2
+) {
+  if(x1==0)
+  {
+    return (x2==0 ? 0 : -1) ;
+  } else {
+    return (x2==0 ? 1 : atspre_compare_string_string(x1, x2)) ;
+  } // end of [if]
+} // end of [atspre_compare_strptr_strptr]
+
+/* ****** ****** */
+
+#define atspre_eq_strptr_string atspre_eq_string_string 
+#define atspre_neq_strptr_string atspre_neq_string_string 
+#define atspre_compare_strptr_string atspre_compare_string_string 
+
+/* ****** ****** */
+
+#endif // ifndef ATSLIB_PRELUDE_CATS_STRPTR
+
+/* ****** ****** */
+
+/* end of [strptr.cats] */
diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # fast-arithmetic
 
+## 0.6.4.3
+
+  * Improved documentation
+  * Update for latest `ats-includes` package
+  * Remove unsafe casts and don't bother with `intinfGt(0)` types
+  * Use internal library `pure-haskell` for benchmarks/test suite
+  * Drop some older GHC support
+
 ## 0.6.4.2
 
   * Fix bug in `include/fast_arithmetic.h`
@@ -17,7 +25,7 @@
   * Add `radical` to `fast_arithmetic.h`, for users of the C library
 
 ## 0.6.3.0
-  
+
   * Patch `isPrime`
 
 ## 0.6.2.1
@@ -33,7 +41,7 @@
   * Add `fast_arithmetic.h` for those wanting to use the C library.
 
 ## 0.6.1.1
-  
+
   * Add niche function for a problem of combinatorial geometry.
 
 ## 0.6.1.0
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Vanessa McHale (c) 2017-2018
+Copyright Vanessa McHale (c) 2017-2019
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
diff --git a/ats-src/bench.dats b/ats-src/bench.dats
--- a/ats-src/bench.dats
+++ b/ats-src/bench.dats
@@ -37,10 +37,16 @@
 
 fn bell_bench() : void =
   {
-    val x = bell(10)
+    val x = bell(30)
     val () = intinf_free(x)
   }
 
+fn stirling2_bench() : void =
+  {
+    val x = stirling2(25, 8)
+    val () = intinf_free(x)
+  }
+
 fn derangement_bench() : void =
   {
     val x = derangements(35)
@@ -54,6 +60,7 @@
 val permutations_delay: io = lam () => permutations_bench()
 val bell_delay: io = lam () => bell_bench()
 val derangement_delay: io = lam () => derangement_bench()
+val stirling2_delay: io = lam () => stirling2_bench()
 
 implement main0 () =
   {
@@ -66,6 +73,7 @@
     val () = print_slope("choose", 13, choose_delay)
     val () = print_slope("catalan", 9, catalan_delay)
     val () = print_slope("permutations", 13, permutations_delay)
+    val () = print_slope("stirling2", 10, stirling2_delay)
     val () = print_slope("bell", 8, bell_delay)
     val () = print_slope("derangements", 12, derangement_delay)
   }
diff --git a/ats-src/combinatorics.dats b/ats-src/combinatorics.dats
--- a/ats-src/combinatorics.dats
+++ b/ats-src/combinatorics.dats
@@ -8,7 +8,7 @@
 staload UN = "prelude/SATS/unsafe.sats"
 staload "ats-src/combinatorics.sats"
 
-fn derangements {n:nat} .<n>. (n : int(n)) : Intinf =
+fn derangements {n:nat}(n : int(n)) : Intinf =
   let
     fun loop { n : nat | n > 1 }{ i : nat | i <= n } .<n-i>. (n : int(n), i : int(i), n1 : Intinf, n2 : Intinf) : Intinf =
       if i < n then
@@ -34,17 +34,17 @@
       | n =>> loop(n - 1, 2, int2intinf(1), int2intinf(0))
   end
 
-fun fact_ref {n:nat} .<n>. (k : int(n), ret : &intinfGte(1)? >> intinfGte(1)) : void =
+fun fact_ref {n:nat} .<n>. (k : int(n), ret : &Intinf? >> Intinf) : void =
   case+ k of
     | 0 => ret := int2intinf(1)
     | 1 => ret := int2intinf(1)
     | k =>> let
       val () = fact_ref(k - 1, ret)
     in
-      ret := $UN.castvwtp0(mul_intinf0_int(ret, k))
+      ret := mul_intinf0_int(ret, k)
     end
 
-fn fact {n:nat}(k : int(n)) : intinfGte(1) =
+fn fact {n:nat}(k : int(n)) : Intinf =
   let
     var ret: intinfGte(1)
     val () = fact_ref(k, ret)
@@ -87,14 +87,14 @@
 
 fn catalan {n:nat}(n : int(n)) : Intinf =
   let
-    fun numerator_loop { i : nat | i > 1 } .<i>. (i : int(i)) : intinfGt(0) =
+    fun numerator_loop { i : nat | i > 1 } .<i>. (i : int(i)) : Intinf =
       case+ i of
         | 2 => int2intinf(n + 2)
         | i =>> let
           var x = numerator_loop(i - 1)
           var y = mul_intinf0_int(x, n + i)
         in
-          $UN.castvwtp0(y)
+          y
         end
   in
     case+ n of
@@ -112,15 +112,15 @@
 
 fn choose {n:nat}{m:nat}(n : int(n), k : int(m)) : Intinf =
   let
-    fun numerator_loop { m : nat | m > 1 } .<m>. (i : int(m), ret : &intinfGt(0)? >> intinfGt(0)) : void =
+    fun numerator_loop { m : nat | m > 1 } .<m>. (i : int(m), ret : &Intinf? >> Intinf) : void =
       case+ i of
         | 1 => ret := int2intinf(n)
-        | 2 => ret := $UN.castvwtp0(int2intinf((n - 1) * n))
+        | 2 => ret := int2intinf((n - 1) * n)
         | i =>> let
           val () = numerator_loop(i - 1, ret)
           var y = mul_intinf0_int(ret, n + 1 - i)
         in
-          ret := $UN.castvwtp0(y)
+          ret := y
         end
   in
     case+ k of
@@ -128,7 +128,7 @@
       | 1 => int2intinf(n)
       | k when k > n => int2intinf(0)
       | k =>> let
-        var x: intinfGt(0)
+        var x: Intinf
         val () = numerator_loop(k, x)
         var y = fact(k)
         var z = div_intinf0_intinf1(x, y)
@@ -138,8 +138,6 @@
       end
   end
 
-// Approach taken from
-// http://hackage.haskell.org/package/combinat-0.2.9.0/docs/src/Math.Combinat.Numbers.Sequences.html#stirling2nd
 fn stirling2 { n, k : nat }(n : int(n), k : int(k)) : Intinf =
   ifcase
     | k = 0 && n = 0 => int2intinf(1)
@@ -174,8 +172,6 @@
       result
     end
 
-// Approach taken from
-// http://hackage.haskell.org/package/combinat-0.2.9.0/docs/src/Math.Combinat.Numbers.Sequences.html#bellNumber
 fn bell {n:nat}(n : int(n)) : Intinf =
   let
     fun sum_loop { k : nat | k >= 1 } .<k>. (k : int(k), acc : &Intinf? >> Intinf) : void =
diff --git a/ats-src/number-theory.dats b/ats-src/number-theory.dats
--- a/ats-src/number-theory.dats
+++ b/ats-src/number-theory.dats
@@ -15,7 +15,7 @@
   n % m = 0
 
 implement gcd (m, n) =
-  if n > 0 then
+  if n != 0 then
     gcd(n, witness(m % n))
   else
     m
@@ -187,7 +187,7 @@
         var n1 = n / p
       in
         if n1 < n then
-          $UN.cast(rip(n1, p))
+          rip(n1, p)
         else
           1
       end
diff --git a/ats-src/number-theory.sats b/ats-src/number-theory.sats
--- a/ats-src/number-theory.sats
+++ b/ats-src/number-theory.sats
@@ -38,6 +38,7 @@
   "ext#"
 
 // aka σ in number theory
+// technically this is unsafe because it might overflow
 fn sum_divisors_ats : { n : nat | n > 1 } int(n) -> int =
   "ext#"
 
diff --git a/ats-src/numerics-internal.dats b/ats-src/numerics-internal.dats
--- a/ats-src/numerics-internal.dats
+++ b/ats-src/numerics-internal.dats
@@ -7,13 +7,13 @@
 staload UN = "prelude/SATS/unsafe.sats"
 staload "ats-src/numerics.sats"
 
+// TODO: lucas numbers?
 // Fast computation of Fibonacci numbers via GMP bindings.
-fn fib_gmp(n : intGte(0)) : Intinf =
+fn fib_gmp(n : uintGte(0)) : Intinf =
   let
     var z = ptr_alloc()
-    var x = g0int2uint(n + 1)
     val () = $GMP.mpz_init(!(z.2))
-    val () = $GMP.mpz_fib_uint(!(z.2), x)
+    val () = $GMP.mpz_fib_uint(!(z.2), n)
   in
     $UN.castvwtp0(z)
   end
diff --git a/ats-src/numerics.dats b/ats-src/numerics.dats
--- a/ats-src/numerics.dats
+++ b/ats-src/numerics.dats
@@ -8,7 +8,7 @@
 
 %{^
 #ifndef LIBRARY_BUILD
-#define ATS_MEMALLOC_LIBC *)
+#define ATS_MEMALLOC_LIBC
 #include "ccomp/runtime/pats_ccomp_memalloc_libc.h"
 #include "ccomp/runtime/pats_ccomp_runtime_memalloc.c"
 #endif
diff --git a/ats-src/numerics.sats b/ats-src/numerics.sats
--- a/ats-src/numerics.sats
+++ b/ats-src/numerics.sats
@@ -1,5 +1,4 @@
-// Existential types for even and odd numbers. These are only usable with the
-// ATS library.
+// Existential types for even and odd numbers.
 typedef Even = [n:nat] int(2*n)
 typedef Odd = [n:nat] int(2*n+1)
 
diff --git a/atspkg.dhall b/atspkg.dhall
--- a/atspkg.dhall
+++ b/atspkg.dhall
@@ -1,11 +1,11 @@
 {- Imports -}
-let prelude = http://hackage.haskell.org/package/ats-pkg/src/dhall/atspkg-prelude.dhall
+let prelude = https://raw.githubusercontent.com/vmchale/atspkg/master/ats-pkg/dhall/atspkg-prelude.dhall
 in
 
-let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/map
+let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/map
 in
 
-let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Bool/not
+let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Bool/not
 in
 
 {- Types -}
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -4,19 +4,9 @@
 import qualified Math.Combinat.Numbers                 as Ext
 import qualified Math.NumberTheory.ArithmeticFunctions as Ext
 import           Numeric.Combinatorics
+import           Numeric.Haskell
 import           Numeric.NumberTheory
 
-hsPermutations :: Integral a => a -> a -> a
-hsPermutations n k = product [(n-k+1)..n]
-
-hsIsPrime :: (Integral a) => a -> Bool
-hsIsPrime 1 = False
-hsIsPrime x = all ((/=0) . (x `rem`)) [2..up]
-    where up = floor (sqrt (fromIntegral x :: Double))
-
-hsMaxRegions :: Int -> Integer
-hsMaxRegions n = sum $ fmap (n `Ext.binomial`) [0..4]
-
 main :: IO ()
 main =
     defaultMain [ bgroup "primality check"
@@ -60,11 +50,13 @@
                       , bench "hsPermutations" $ nf (hsPermutations 10) (20 :: Integer)
                       ]
                 , bgroup "maxRegions"
-                      [ bench "maxRegions" $ nf maxRegions 45000
-                      , bench "hsMaxRegions" $ nf hsMaxRegions 45000
+                      [ bench "maxRegions" $ nf maxRegions (45000 :: Int)
+                      , bench "hsMaxRegions" $ nf hsMaxRegions (45000 :: Int)
                       ]
                 , bgroup "stirling"
                       [ bench "stirling2" $ nf (stirling2 25) 8
                       , bench "Ext.stirling2nd" $ nf (Ext.stirling2nd (25 :: Int)) 8
                       ]
+                , bgroup "bell"
+                      [ bench "Ext.bell" $ nf Ext.bellNumber (30 :: Int) ]
                 ]
diff --git a/cbits/combinatorics.c b/cbits/combinatorics.c
--- a/cbits/combinatorics.c
+++ b/cbits/combinatorics.c
@@ -1,8472 +1,8472 @@
 /*
 **
-** The C code is generated by [ATS/Postiats-0-3-11]
-**
-*/
-
-/*
-** 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)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.sats: 1(line=1, offs=1) -- 63(line=1, offs=63)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_g1int2int_int_int)
-ATSdyncst_mac(atspre_g1int_lt_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_add2_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_mul2_int)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_clear)
-ATSdyncst_mac(atspre_ptr_free)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atspre_g1int_gt_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_mpz)
-ATSdyncst_mac(atspre_g1int_mul_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atspre_g0int2int_int_int)
-ATSdyncst_mac(atspre_g0int_eq_int)
-ATSdyncst_mac(atspre_g0int_mod_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_neg1)
-ATSdyncst_mac(atscntrb_gmp_mpz_init)
-ATSdyncst_mac(atscntrb_gmp_mpz_ui_pow_ui)
-ATSdyncst_mac(atspre_g1int2uint_int_ulint)
-ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-ATSextern()
-atsvoid_t0ype
-the_atsexncon_initize
-(
-  atstype_exnconptr d2c, atstype_string exnmsg
-) ;
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-/*
-exnconlst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-/*
-assumelst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
-/*
-assumelst-declaration(end)
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-derangements_0(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__1() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__2() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__3() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__4() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__5() ;
-
-ATSstatic()
-atsvoid_t0ype
-fact_ref_28(atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__6() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__7() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fact_34(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atsvoid_t0ype
-dfact_ref_35(atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__8() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__9() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-dfact_41(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-permutations_42(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atsvoid_t0ype
-loop_43(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44(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__44__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__10() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-catalan_50(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-numerator_loop_51(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__11() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__12() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__13() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-choose_62(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atsvoid_t0ype
-numerator_loop_63(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__14() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__15() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__16() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__17() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__18() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-stirling2_79(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__80(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__80__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__80__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__19() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__20() ;
-
-ATSstatic()
-atsvoid_t0ype
-top_loop_89(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__21() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-negate_if_odd_92(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__93(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__93__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__22() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-bell_110(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atsvoid_t0ype
-sum_loop_111(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__23() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-max_regions_116(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atsvoid_t0ype
-loop_117(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__24() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-double_factorial_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-factorial_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-catalan_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-derangements_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-permutations_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-stirling2_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-max_regions_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-bell_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 326(line=11, offs=4) -- 1024(line=35, offs=6)
-*/
-/*
-local: 
-global: derangements_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-derangements_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp46, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp51, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 326(line=11, offs=4) -- 1024(line=35, offs=6)
-*/
-ATSINSflab(__patsflab_derangements_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 379(line=12, offs=3) -- 1024(line=35, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 866(line=30, offs=5) -- 1018(line=34, offs=59)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 885(line=31, offs=9) -- 886(line=31, offs=10)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 354(line=11, offs=32) -- 355(line=11, offs=33)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 886(line=31, offs=10) -- 886(line=31, offs=10)
-*/
-ATSINSlab(__atstmplab1):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 890(line=31, offs=14) -- 903(line=31, offs=27)
-*/
-ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 912(line=32, offs=9) -- 913(line=32, offs=10)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 354(line=11, offs=32) -- 355(line=11, offs=33)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab4) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 913(line=32, offs=10) -- 913(line=32, offs=10)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 918(line=32, offs=15) -- 931(line=32, offs=28)
-*/
-ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(ATSPMVi0nt(0))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 940(line=33, offs=9) -- 941(line=33, offs=10)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 354(line=11, offs=32) -- 355(line=11, offs=33)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab6) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 941(line=33, offs=10) -- 941(line=33, offs=10)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 946(line=33, offs=15) -- 959(line=33, offs=28)
-*/
-ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 969(line=34, offs=10) -- 969(line=34, offs=10)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 979(line=34, offs=20) -- 984(line=34, offs=25)
-*/
-ATSINSmove(tmp45, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 989(line=34, offs=30) -- 1002(line=34, offs=43)
-*/
-ATSINSmove(tmp46, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1004(line=34, offs=45) -- 1017(line=34, offs=58)
-*/
-ATSINSmove(tmp51, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 974(line=34, offs=15) -- 1018(line=34, offs=59)
-*/
-ATSINSmove(tmpret0, loop_1(tmp45, ATSPMVi0nt(2), tmp46, tmp51)) ;
-
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 379(line=12, offs=3) -- 1024(line=35, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [derangements_0] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 391(line=13, offs=9) -- 856(line=28, offs=12)
-*/
-/*
-local: loop_1$0(level=1)
-global: loop_1$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_type(atstype_ptrk) arg2, atstkind_type(atstype_ptrk) arg3)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy3, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref7, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref12, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp17, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref18, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp21) ;
-ATStmpdec(tmpref26, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 391(line=13, offs=9) -- 856(line=28, offs=12)
-*/
-ATSINSflab(__patsflab_loop_1):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 515(line=14, offs=10) -- 520(line=14, offs=15)
-*/
-ATSINSmove(tmp2, ATSLIB_056_prelude__lt_g1int_int__2__1(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 512(line=14, offs=7) -- 856(line=28, offs=12)
-*/
-ATSif(
-tmp2
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 534(line=15, offs=9) -- 678(line=20, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 552(line=16, offs=15) -- 553(line=16, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref7) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 556(line=16, offs=19) -- 583(line=16, offs=46)
-*/
-ATSINSmove(tmpref7, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(arg3, ATSPMVrefarg0(arg2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 598(line=17, offs=15) -- 599(line=17, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref12) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 602(line=17, offs=19) -- 623(line=17, offs=40)
-*/
-ATSINSmove(tmpref12, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(tmpref7, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 653(line=19, offs=19) -- 658(line=19, offs=24)
-*/
-ATSINSmove(tmp17, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 645(line=19, offs=11) -- 666(line=19, offs=32)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp17) ;
-ATSINSmove_tlcal(apy2, tmpref12) ;
-ATSINSmove_tlcal(apy3, arg2) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSargmove_tlcal(arg2, apy2) ;
-ATSINSargmove_tlcal(arg3, apy3) ;
-ATSINSfgoto(__patsflab_loop_1) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 534(line=15, offs=9) -- 678(line=20, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 698(line=22, offs=9) -- 856(line=28, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 716(line=23, offs=15) -- 717(line=23, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref18) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 720(line=23, offs=19) -- 747(line=23, offs=46)
-*/
-ATSINSmove(tmpref18, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(arg3, ATSPMVrefarg0(arg2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 766(line=24, offs=19) -- 780(line=24, offs=33)
-*/
-ATSINSmove_void(tmp21, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 796(line=25, offs=15) -- 797(line=25, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref26) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 800(line=25, offs=19) -- 821(line=25, offs=40)
-*/
-ATSINSmove(tmpref26, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(tmpref18, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 843(line=27, offs=11) -- 844(line=27, offs=12)
-*/
-ATSINSmove(tmpret1, tmpref26) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 698(line=22, offs=9) -- 856(line=28, offs=12)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret1) ;
-} /* end of [loop_1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$2$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp4, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4627))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret3, PMVtmpltcst(g1int_lt<S2Evar(tk(4627))>)(arg0, tmp4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__2] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$2$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = Some(tk(4627) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret3__1, atspre_g1int_lt_int(arg0, tmp4__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__2__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9__1, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__1, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9__2, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8__2, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22) ;
-// ATStmpdec_void(tmp23) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__1) ;
-// ATStmpdec_void(tmp23__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__1, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__2, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__2, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29, tmp30) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__1, ATSLIB_056_prelude__ptr_alloc__17__1()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__1, tmp30__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__2, ATSLIB_056_prelude__ptr_alloc__17__2()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__2, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__2, tmp30__2) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__3, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__3, ATSLIB_056_prelude__ptr_alloc__17__3()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__3, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__3, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__3, tmp30__3) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__3()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__3, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__3) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$4(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__4, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__4, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__4) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__4, ATSLIB_056_prelude__ptr_alloc__17__4()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__4, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__4, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__4, tmp30__4) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__4) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__4()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__4, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__4) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$5(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__5, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__5, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__5) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__5, ATSLIB_056_prelude__ptr_alloc__17__5()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__5, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__5, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__5, tmp30__5) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__5) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__5()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__5, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__5) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1030(line=37, offs=5) -- 1308(line=45, offs=8)
-*/
-/*
-local: fact_ref_28$0(level=0)
-global: fact_ref_28$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atsvoid_t0ype
-fact_ref_28(atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret56) ;
-ATStmpdec(tmp57, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp62, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67) ;
-ATStmpdec(tmp68, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp69, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1030(line=37, offs=5) -- 1308(line=45, offs=8)
-*/
-ATSINSflab(__patsflab_fact_ref_28):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1115(line=38, offs=3) -- 1308(line=45, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1132(line=39, offs=7) -- 1133(line=39, offs=8)
-*/
-ATSINSlab(__atstmplab7):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1054(line=37, offs=29) -- 1055(line=37, offs=30)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab9) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1133(line=39, offs=8) -- 1133(line=39, offs=8)
-*/
-ATSINSlab(__atstmplab8):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1144(line=39, offs=19) -- 1157(line=39, offs=32)
-*/
-ATSINSmove(tmp57, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1137(line=39, offs=12) -- 1157(line=39, offs=32)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp57) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1137(line=39, offs=12) -- 1157(line=39, offs=32)
-*/
-ATSINSmove_void(tmpret56, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1164(line=40, offs=7) -- 1165(line=40, offs=8)
-*/
-ATSINSlab(__atstmplab9):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1054(line=37, offs=29) -- 1055(line=37, offs=30)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab11) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1165(line=40, offs=8) -- 1165(line=40, offs=8)
-*/
-ATSINSlab(__atstmplab10):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1176(line=40, offs=19) -- 1189(line=40, offs=32)
-*/
-ATSINSmove(tmp62, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1169(line=40, offs=12) -- 1189(line=40, offs=32)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp62) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1169(line=40, offs=12) -- 1189(line=40, offs=32)
-*/
-ATSINSmove_void(tmpret56, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1197(line=41, offs=8) -- 1197(line=41, offs=8)
-*/
-ATSINSlab(__atstmplab11):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1202(line=41, offs=13) -- 1308(line=45, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1230(line=42, offs=25) -- 1235(line=42, offs=30)
-*/
-ATSINSmove(tmp68, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1221(line=42, offs=16) -- 1241(line=42, offs=36)
-*/
-ATSINSmove_void(tmp67, fact_ref_28(tmp68, ATSPMVrefarg1(arg1))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1276(line=44, offs=28) -- 1299(line=44, offs=51)
-*/
-ATSINSmove(tmp69, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1255(line=44, offs=7) -- 1300(line=44, offs=52)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmp69)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1255(line=44, offs=7) -- 1300(line=44, offs=52)
-*/
-ATSINSmove_void(tmpret56, ATSPMVempty()) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1202(line=41, offs=13) -- 1308(line=45, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret56) ;
-} /* end of [fact_ref_28] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$6(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__6, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__6, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__6) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__6, ATSLIB_056_prelude__ptr_alloc__17__6()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__6, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__6, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__6, tmp30__6) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__6) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$6(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__6()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__6, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__6, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__6) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__6] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$7(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__7, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__7, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__7) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__7, ATSLIB_056_prelude__ptr_alloc__17__7()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__7, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__7, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__7, tmp30__7) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__7) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$7(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__7()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__7, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__7, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__7) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__7] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__3, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__3, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1313(line=47, offs=4) -- 1435(line=53, offs=6)
-*/
-/*
-local: fact_ref_28$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fact_34(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret72, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref73, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp74) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1313(line=47, offs=4) -- 1435(line=53, offs=6)
-*/
-ATSINSflab(__patsflab_fact_34):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1357(line=48, offs=3) -- 1435(line=53, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1369(line=49, offs=9) -- 1372(line=49, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref73) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1400(line=50, offs=14) -- 1416(line=50, offs=30)
-*/
-ATSINSmove_void(tmp74, fact_ref_28(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref73)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1426(line=52, offs=5) -- 1429(line=52, offs=8)
-*/
-ATSINSmove(tmpret72, tmpref73) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1357(line=48, offs=3) -- 1435(line=53, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret72) ;
-} /* end of [fact_34] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1441(line=55, offs=5) -- 1710(line=64, offs=8)
-*/
-/*
-local: dfact_ref_35$0(level=0)
-global: dfact_ref_35$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atsvoid_t0ype
-dfact_ref_35(atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret75) ;
-ATStmpdec(tmp76, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp81, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp86) ;
-ATStmpdec(tmp87, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref88, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1441(line=55, offs=5) -- 1710(line=64, offs=8)
-*/
-ATSINSflab(__patsflab_dfact_ref_35):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1515(line=56, offs=3) -- 1710(line=64, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1532(line=57, offs=7) -- 1533(line=57, offs=8)
-*/
-ATSINSlab(__atstmplab12):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1466(line=55, offs=30) -- 1467(line=55, offs=31)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1533(line=57, offs=8) -- 1533(line=57, offs=8)
-*/
-ATSINSlab(__atstmplab13):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1544(line=57, offs=19) -- 1557(line=57, offs=32)
-*/
-ATSINSmove(tmp76, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1537(line=57, offs=12) -- 1557(line=57, offs=32)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp76) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1537(line=57, offs=12) -- 1557(line=57, offs=32)
-*/
-ATSINSmove_void(tmpret75, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1564(line=58, offs=7) -- 1565(line=58, offs=8)
-*/
-ATSINSlab(__atstmplab14):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1466(line=55, offs=30) -- 1467(line=55, offs=31)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab16) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1565(line=58, offs=8) -- 1565(line=58, offs=8)
-*/
-ATSINSlab(__atstmplab15):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1576(line=58, offs=19) -- 1589(line=58, offs=32)
-*/
-ATSINSmove(tmp81, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1569(line=58, offs=12) -- 1589(line=58, offs=32)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp81) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1569(line=58, offs=12) -- 1589(line=58, offs=32)
-*/
-ATSINSmove_void(tmpret75, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1597(line=59, offs=8) -- 1597(line=59, offs=8)
-*/
-ATSINSlab(__atstmplab16):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1602(line=59, offs=13) -- 1710(line=64, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1631(line=60, offs=26) -- 1636(line=60, offs=31)
-*/
-ATSINSmove(tmp87, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1621(line=60, offs=16) -- 1642(line=60, offs=37)
-*/
-ATSINSmove_void(tmp86, dfact_ref_35(tmp87, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1653(line=61, offs=11) -- 1654(line=61, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref88) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1657(line=61, offs=15) -- 1680(line=61, offs=38)
-*/
-ATSINSmove(tmpref88, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1694(line=63, offs=7) -- 1702(line=63, offs=15)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmpref88) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1694(line=63, offs=7) -- 1702(line=63, offs=15)
-*/
-ATSINSmove_void(tmpret75, ATSPMVempty()) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1602(line=59, offs=13) -- 1710(line=64, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret75) ;
-} /* end of [dfact_ref_35] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$8(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__8, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__8, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__8) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__8, ATSLIB_056_prelude__ptr_alloc__17__8()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__8, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__8, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__8, tmp30__8) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__8) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$8(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__8()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__8, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__8, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__8) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__8] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$9(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__9, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__9, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__9) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__9, ATSLIB_056_prelude__ptr_alloc__17__9()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__9, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__9, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__9, tmp30__9) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__9) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$9(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__9()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__9, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__9, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__9) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__9] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$4(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__4, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__4) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__4, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__4, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__4) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1716(line=66, offs=5) -- 1841(line=72, offs=6)
-*/
-/*
-local: dfact_ref_35$0(level=0)
-global: dfact_ref_35$0(level=0), dfact_41$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-dfact_41(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret91, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref92, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp93) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1716(line=66, offs=5) -- 1841(line=72, offs=6)
-*/
-ATSINSflab(__patsflab_dfact_41):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1762(line=67, offs=3) -- 1841(line=72, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1774(line=68, offs=9) -- 1777(line=68, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref92) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1805(line=69, offs=14) -- 1822(line=69, offs=31)
-*/
-ATSINSmove_void(tmp93, dfact_ref_35(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref92)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1832(line=71, offs=5) -- 1835(line=71, offs=8)
-*/
-ATSINSmove(tmpret91, tmpref92) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1762(line=67, offs=3) -- 1841(line=72, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret91) ;
-} /* end of [dfact_41] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1846(line=74, offs=4) -- 2234(line=86, offs=6)
-*/
-/*
-local: 
-global: permutations_42$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-permutations_42(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret94, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref115, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp116) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1846(line=74, offs=4) -- 2234(line=86, offs=6)
-*/
-ATSINSflab(__patsflab_permutations_42):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1933(line=75, offs=3) -- 2234(line=86, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2178(line=82, offs=9) -- 2181(line=82, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref115) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2203(line=83, offs=14) -- 2215(line=83, offs=26)
-*/
-ATSINSmove_void(tmp116, loop_43(arg0, arg1, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref115)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2225(line=85, offs=5) -- 2228(line=85, offs=8)
-*/
-ATSINSmove(tmpret94, tmpref115) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1933(line=75, offs=3) -- 2234(line=86, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret94) ;
-} /* end of [permutations_42] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1945(line=76, offs=9) -- 2164(line=80, offs=37)
-*/
-/*
-local: loop_43$0(level=1)
-global: loop_43$0(level=1)
-local: n$5101(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5101(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atsvoid_t0ype
-loop_43(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret95) ;
-ATStmpdec(tmp96, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp101, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp102, atstkind_t0ype(atstype_int)) ;
-// ATStmpdec_void(tmp103) ;
-ATStmpdec(tmp104, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp105, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp108, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1945(line=76, offs=9) -- 2164(line=80, offs=37)
-*/
-ATSINSflab(__patsflab_loop_43):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2042(line=77, offs=14) -- 2047(line=77, offs=19)
-*/
-ATSINSmove(tmp102, atspre_g1int_sub_int(env0, env1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2042(line=77, offs=14) -- 2051(line=77, offs=23)
-*/
-ATSINSmove(tmp101, atspre_g1int_add_int(tmp102, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2038(line=77, offs=10) -- 2051(line=77, offs=23)
-*/
-ATSINSmove(tmp96, ATSLIB_056_prelude__gt_g1int_int__44__1(arg0, tmp101)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2035(line=77, offs=7) -- 2164(line=80, offs=37)
-*/
-ATSif(
-tmp96
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2071(line=78, offs=15) -- 2076(line=78, offs=20)
-*/
-ATSINSmove(tmp104, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2066(line=78, offs=10) -- 2082(line=78, offs=26)
-*/
-ATSINSmove_void(tmp103, loop_43(env0, env1, tmp104, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2092(line=78, offs=36) -- 2115(line=78, offs=59)
-*/
-ATSINSmove(tmp105, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2085(line=78, offs=29) -- 2115(line=78, offs=59)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp105) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2085(line=78, offs=29) -- 2115(line=78, offs=59)
-*/
-ATSINSmove_void(tmpret95, ATSPMVempty()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2143(line=80, offs=16) -- 2164(line=80, offs=37)
-*/
-ATSINSmove(tmp114, atspre_g1int_sub_int(env0, env1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2143(line=80, offs=16) -- 2164(line=80, offs=37)
-*/
-ATSINSmove(tmp113, atspre_g1int_add_int(tmp114, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2143(line=80, offs=16) -- 2164(line=80, offs=37)
-*/
-ATSINSmove(tmp108, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(tmp113)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2136(line=80, offs=9) -- 2164(line=80, offs=37)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp108) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2136(line=80, offs=9) -- 2164(line=80, offs=37)
-*/
-ATSINSmove_void(tmpret95, ATSPMVempty()) ;
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn_void(tmpret95) ;
-} /* end of [loop_43] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$44$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp98, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp98, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4633))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret97, PMVtmpltcst(g1int_gt<S2Evar(tk(4633))>)(arg0, tmp98)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret97) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__44] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$44$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp98__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp98__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret97__1, atspre_g1int_gt_int(arg0, tmp98__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret97__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__5, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__5) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__5, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__5, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__5) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$10(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__10, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__10, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__10) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__10, ATSLIB_056_prelude__ptr_alloc__17__10()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__10, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__10, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__10, tmp30__10) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__10) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$10(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__10()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__10, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__10, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__10) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__10] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2239(line=88, offs=4) -- 2823(line=111, offs=6)
-*/
-/*
-local: fact_34$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), catalan_50$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-catalan_50(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret117, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref138, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref139, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref140, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp145) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2239(line=88, offs=4) -- 2823(line=111, offs=6)
-*/
-ATSINSflab(__patsflab_catalan_50):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2280(line=89, offs=3) -- 2823(line=111, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2575(line=100, offs=5) -- 2817(line=110, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2594(line=101, offs=9) -- 2595(line=101, offs=10)
-*/
-ATSINSlab(__atstmplab20):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2255(line=88, offs=20) -- 2256(line=88, offs=21)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab22) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2595(line=101, offs=10) -- 2595(line=101, offs=10)
-*/
-ATSINSlab(__atstmplab21):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2599(line=101, offs=14) -- 2612(line=101, offs=27)
-*/
-ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2621(line=102, offs=9) -- 2622(line=102, offs=10)
-*/
-ATSINSlab(__atstmplab22):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2255(line=88, offs=20) -- 2256(line=88, offs=21)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab24) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2622(line=102, offs=10) -- 2622(line=102, offs=10)
-*/
-ATSINSlab(__atstmplab23):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2626(line=102, offs=14) -- 2639(line=102, offs=27)
-*/
-ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2649(line=103, offs=10) -- 2649(line=103, offs=10)
-*/
-ATSINSlab(__atstmplab24):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2654(line=103, offs=15) -- 2817(line=110, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2670(line=104, offs=13) -- 2671(line=104, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref138) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2674(line=104, offs=17) -- 2690(line=104, offs=33)
-*/
-ATSINSmove(tmpref138, numerator_loop_51(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2704(line=105, offs=13) -- 2705(line=105, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref139) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2708(line=105, offs=17) -- 2714(line=105, offs=23)
-*/
-ATSINSmove(tmpref139, fact_34(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2728(line=106, offs=13) -- 2729(line=106, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref140) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2732(line=106, offs=17) -- 2757(line=106, offs=42)
-*/
-ATSINSmove(tmpref140, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(tmpref138, ATSPMVrefarg0(tmpref139))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2774(line=107, offs=17) -- 2787(line=107, offs=30)
-*/
-ATSINSmove_void(tmp145, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(tmpref139)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2806(line=109, offs=9) -- 2807(line=109, offs=10)
-*/
-ATSINSmove(tmpret117, tmpref140) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2654(line=103, offs=15) -- 2817(line=110, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2280(line=89, offs=3) -- 2823(line=111, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret117) ;
-} /* end of [catalan_50] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2292(line=90, offs=9) -- 2565(line=98, offs=12)
-*/
-/*
-local: numerator_loop_51$0(level=1)
-global: numerator_loop_51$0(level=1)
-local: n$5108(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5108(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-numerator_loop_51(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret118, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp123, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref124, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref126, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp129, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2292(line=90, offs=9) -- 2565(line=98, offs=12)
-*/
-ATSINSflab(__patsflab_numerator_loop_51):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2368(line=91, offs=7) -- 2565(line=98, offs=12)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2389(line=92, offs=11) -- 2390(line=92, offs=12)
-*/
-ATSINSlab(__atstmplab17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2334(line=90, offs=51) -- 2335(line=90, offs=52)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab19) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2390(line=92, offs=12) -- 2390(line=92, offs=12)
-*/
-ATSINSlab(__atstmplab18):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2394(line=92, offs=16) -- 2411(line=92, offs=33)
-*/
-ATSINSmove(tmp123, atspre_g1int_add_int(env0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2394(line=92, offs=16) -- 2411(line=92, offs=33)
-*/
-ATSINSmove(tmpret118, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(tmp123)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2423(line=93, offs=12) -- 2423(line=93, offs=12)
-*/
-ATSINSlab(__atstmplab19):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2428(line=93, offs=17) -- 2565(line=98, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2446(line=94, offs=15) -- 2447(line=94, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref124) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2465(line=94, offs=34) -- 2470(line=94, offs=39)
-*/
-ATSINSmove(tmp125, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2450(line=94, offs=19) -- 2471(line=94, offs=40)
-*/
-ATSINSmove(tmpref124, numerator_loop_51(env0, tmp125)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2486(line=95, offs=15) -- 2487(line=95, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref126) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2509(line=95, offs=38) -- 2514(line=95, offs=43)
-*/
-ATSINSmove(tmp129, atspre_g1int_add_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2490(line=95, offs=19) -- 2515(line=95, offs=44)
-*/
-ATSINSmove(tmpref126, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(tmpref124, tmp129)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2537(line=97, offs=11) -- 2552(line=97, offs=26)
-*/
-ATSINSmove(tmpret118, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref126)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2428(line=93, offs=17) -- 2565(line=98, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret118) ;
-} /* end of [numerator_loop_51] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$11(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__11, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__11, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__11) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__11, ATSLIB_056_prelude__ptr_alloc__17__11()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__11, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__11, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__11, tmp30__11) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__11) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$11(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__11()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__11, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__11, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__11) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__11] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$6(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__6, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__6) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__6, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__6, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__6) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$12(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__12, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__12, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__12) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__12, ATSLIB_056_prelude__ptr_alloc__17__12()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__12, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__12, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__12, tmp30__12) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__12) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$12(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__12()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__12, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__12, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__12) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__12] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$13(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__13, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__13, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__13) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__13, ATSLIB_056_prelude__ptr_alloc__17__13()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__13, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__13, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__13, tmp30__13) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__13) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$13(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__13()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__13, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__13, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__13) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__13] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$59$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret141, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp142) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp142, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret141, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret141) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$59$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret141__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp142__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp142__1, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret141__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret141__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__2) ;
-// ATStmpdec_void(tmp23__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__2, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2828(line=113, offs=4) -- 3611(line=139, offs=6)
-*/
-/*
-local: fact_34$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-choose_62(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret148, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp177, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref184, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp185) ;
-ATStmpdec(tmpref186, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref187, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp190) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2828(line=113, offs=4) -- 3611(line=139, offs=6)
-*/
-ATSINSflab(__patsflab_choose_62):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2887(line=114, offs=3) -- 3611(line=139, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3294(line=126, offs=5) -- 3605(line=138, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3313(line=127, offs=9) -- 3314(line=127, offs=10)
-*/
-ATSINSlab(__atstmplab30):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2862(line=113, offs=38) -- 2863(line=113, offs=39)
-*/
-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab32) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3314(line=127, offs=10) -- 3314(line=127, offs=10)
-*/
-ATSINSlab(__atstmplab31):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3318(line=127, offs=14) -- 3331(line=127, offs=27)
-*/
-ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3340(line=128, offs=9) -- 3341(line=128, offs=10)
-*/
-ATSINSlab(__atstmplab32):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2862(line=113, offs=38) -- 2863(line=113, offs=39)
-*/
-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab34) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3341(line=128, offs=10) -- 3341(line=128, offs=10)
-*/
-ATSINSlab(__atstmplab33):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3345(line=128, offs=14) -- 3357(line=128, offs=26)
-*/
-ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(arg0)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3368(line=129, offs=10) -- 3368(line=129, offs=10)
-*/
-ATSINSlab(__atstmplab34):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3374(line=129, offs=16) -- 3379(line=129, offs=21)
-*/
-ATSINSmove(tmp177, ATSLIB_056_prelude__gt_g1int_int__44__2(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3374(line=129, offs=16) -- 3379(line=129, offs=21)
-*/
-ATSifnthen(ATSCKpat_bool(tmp177, ATSPMVbool_true())) { ATSINSgoto(__atstmplab35) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3383(line=129, offs=25) -- 3396(line=129, offs=38)
-*/
-ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(ATSPMVi0nt(0))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3406(line=130, offs=10) -- 3406(line=130, offs=10)
-*/
-ATSINSlab(__atstmplab35):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3411(line=130, offs=15) -- 3605(line=138, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3427(line=131, offs=13) -- 3428(line=131, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref184) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3459(line=132, offs=18) -- 3479(line=132, offs=38)
-*/
-ATSINSmove_void(tmp185, numerator_loop_63(arg0, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref184)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3492(line=133, offs=13) -- 3493(line=133, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref186) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3496(line=133, offs=17) -- 3502(line=133, offs=23)
-*/
-ATSINSmove(tmpref186, fact_34(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3516(line=134, offs=13) -- 3517(line=134, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref187) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3520(line=134, offs=17) -- 3545(line=134, offs=42)
-*/
-ATSINSmove(tmpref187, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(tmpref184, ATSPMVrefarg0(tmpref186))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3562(line=135, offs=17) -- 3575(line=135, offs=30)
-*/
-ATSINSmove_void(tmp190, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(tmpref186)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3594(line=137, offs=9) -- 3595(line=137, offs=10)
-*/
-ATSINSmove(tmpret148, tmpref187) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3411(line=130, offs=15) -- 3605(line=138, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2887(line=114, offs=3) -- 3611(line=139, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret148) ;
-} /* end of [choose_62] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2899(line=115, offs=9) -- 3284(line=124, offs=12)
-*/
-/*
-local: numerator_loop_63$0(level=1)
-global: numerator_loop_63$0(level=1)
-local: n$5119(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5119(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atsvoid_t0ype
-numerator_loop_63(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret149) ;
-ATStmpdec(tmp150, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp155, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp160, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp161, atstkind_t0ype(atstype_int)) ;
-// ATStmpdec_void(tmp162) ;
-ATStmpdec(tmp163, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref164, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp167, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp168, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2899(line=115, offs=9) -- 3284(line=124, offs=12)
-*/
-ATSINSflab(__patsflab_numerator_loop_63):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3004(line=116, offs=7) -- 3284(line=124, offs=12)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3025(line=117, offs=11) -- 3026(line=117, offs=12)
-*/
-ATSINSlab(__atstmplab25):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2941(line=115, offs=51) -- 2942(line=115, offs=52)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab27) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3026(line=117, offs=12) -- 3026(line=117, offs=12)
-*/
-ATSINSlab(__atstmplab26):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3037(line=117, offs=23) -- 3049(line=117, offs=35)
-*/
-ATSINSmove(tmp150, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(env0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3030(line=117, offs=16) -- 3049(line=117, offs=35)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp150) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3030(line=117, offs=16) -- 3049(line=117, offs=35)
-*/
-ATSINSmove_void(tmpret149, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3061(line=118, offs=11) -- 3062(line=118, offs=12)
-*/
-ATSINSlab(__atstmplab27):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2941(line=115, offs=51) -- 2942(line=115, offs=52)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab29) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3062(line=118, offs=12) -- 3062(line=118, offs=12)
-*/
-ATSINSlab(__atstmplab28):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3087(line=118, offs=37) -- 3110(line=118, offs=60)
-*/
-ATSINSmove(tmp161, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3087(line=118, offs=37) -- 3110(line=118, offs=60)
-*/
-ATSINSmove(tmp160, atspre_g1int_mul_int(tmp161, env0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3087(line=118, offs=37) -- 3110(line=118, offs=60)
-*/
-ATSINSmove(tmp155, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(tmp160)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3066(line=118, offs=16) -- 3111(line=118, offs=61)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmp155)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3066(line=118, offs=16) -- 3111(line=118, offs=61)
-*/
-ATSINSmove_void(tmpret149, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3123(line=119, offs=12) -- 3123(line=119, offs=12)
-*/
-ATSINSlab(__atstmplab29):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3128(line=119, offs=17) -- 3284(line=124, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3166(line=120, offs=35) -- 3171(line=120, offs=40)
-*/
-ATSINSmove(tmp163, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3151(line=120, offs=20) -- 3177(line=120, offs=46)
-*/
-ATSINSmove_void(tmp162, numerator_loop_63(env0, tmp163, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3192(line=121, offs=15) -- 3193(line=121, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref164) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3217(line=121, offs=40) -- 3222(line=121, offs=45)
-*/
-ATSINSmove(tmp168, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3217(line=121, offs=40) -- 3226(line=121, offs=49)
-*/
-ATSINSmove(tmp167, atspre_g1int_sub_int(tmp168, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3196(line=121, offs=19) -- 3227(line=121, offs=50)
-*/
-ATSINSmove(tmpref164, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp167)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3249(line=123, offs=11) -- 3271(line=123, offs=33)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmpref164)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3249(line=123, offs=11) -- 3271(line=123, offs=33)
-*/
-ATSINSmove_void(tmpret149, ATSPMVempty()) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3128(line=119, offs=17) -- 3284(line=124, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret149) ;
-} /* end of [numerator_loop_63] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$14(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__14, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__14, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__14) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__14, ATSLIB_056_prelude__ptr_alloc__17__14()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__14, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__14, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__14, tmp30__14) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__14) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$14(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__14()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__14, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__14, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__14) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__14] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$15(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__15, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__15, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__15) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__15, ATSLIB_056_prelude__ptr_alloc__17__15()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__15, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__15, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__15, tmp30__15) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__15) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$15(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__15()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__15, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__15, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__15) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__15] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$8$7(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret13__7, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp14__7) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp14__7, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret13__7, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret13__7) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$16(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__16, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__16, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__16) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__16, ATSLIB_056_prelude__ptr_alloc__17__16()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__16, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__16, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__16, tmp30__16) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__16) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$16(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__16()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__16, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__16, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__16) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__16] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$17(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__17, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__17, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__17) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__17, ATSLIB_056_prelude__ptr_alloc__17__17()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__17, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__17, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__17, tmp30__17) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__17) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$17(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__17()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__17, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__17, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__17) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__17] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$44$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp98__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp98__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret97__2, atspre_g1int_gt_int(arg0, tmp98__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret97__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$18(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__18, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__18, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__18) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__18, ATSLIB_056_prelude__ptr_alloc__17__18()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__18, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__18, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__18, tmp30__18) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__18) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$18(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__18()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__18, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__18, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__18) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__18] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$59$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret141__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp142__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp142__2, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret141__2, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret141__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__3) ;
-// ATStmpdec_void(tmp23__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__3, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3752(line=143, offs=4) -- 4839(line=175, offs=8)
-*/
-/*
-local: fact_34$0(level=0), choose_62$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-stirling2_79(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret193, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp194, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp195, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp206, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref262, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp263) ;
-ATStmpdec(tmpref264, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref265, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp268) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3752(line=143, offs=4) -- 4839(line=175, offs=8)
-*/
-ATSINSflab(__patsflab_stirling2_79):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3827(line=145, offs=7) -- 3841(line=145, offs=21)
-*/
-ATSINSmove(tmp195, ATSLIB_056_prelude__eq_g1int_int__80__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3827(line=145, offs=7) -- 3841(line=145, offs=21)
-*/
-ATSif(
-tmp195
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3827(line=145, offs=7) -- 3841(line=145, offs=21)
-*/
-ATSINSmove(tmp194, ATSLIB_056_prelude__eq_g1int_int__80__2(arg0, ATSPMVi0nt(0))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3827(line=145, offs=7) -- 3841(line=145, offs=21)
-*/
-ATSINSmove(tmp194, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3814(line=144, offs=3) -- 4839(line=175, offs=8)
-*/
-ATSif(
-tmp194
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3845(line=145, offs=25) -- 3858(line=145, offs=38)
-*/
-ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3865(line=146, offs=7) -- 3870(line=146, offs=12)
-*/
-ATSINSmove(tmp206, ATSLIB_056_prelude__gt_g1int_int__44__3(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3814(line=144, offs=3) -- 4839(line=175, offs=8)
-*/
-ATSif(
-tmp206
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3874(line=146, offs=16) -- 3887(line=146, offs=29)
-*/
-ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(ATSPMVi0nt(0))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3899(line=147, offs=12) -- 4839(line=175, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4663(line=168, offs=11) -- 4666(line=168, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref262) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4690(line=169, offs=16) -- 4706(line=169, offs=32)
-*/
-ATSINSmove_void(tmp263, top_loop_89(arg0, arg1, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref262)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4717(line=170, offs=11) -- 4720(line=170, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref264) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4723(line=170, offs=17) -- 4729(line=170, offs=23)
-*/
-ATSINSmove(tmpref264, fact_34(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4741(line=171, offs=11) -- 4747(line=171, offs=17)
-*/
-/*
-ATSINStmpdec(tmpref265) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4750(line=171, offs=20) -- 4779(line=171, offs=49)
-*/
-ATSINSmove(tmpref265, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(tmpref262, ATSPMVrefarg0(tmpref264))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4795(line=172, offs=16) -- 4810(line=172, offs=31)
-*/
-ATSINSmove_void(tmp268, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(tmpref264)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4825(line=174, offs=7) -- 4831(line=174, offs=13)
-*/
-ATSINSmove(tmpret193, tmpref265) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3899(line=147, offs=12) -- 4839(line=175, offs=8)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret193) ;
-} /* end of [stirling2_79] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$80$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__80(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret196, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp197, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp197, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4639))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret196, PMVtmpltcst(g1int_eq<S2Evar(tk(4639))>)(arg0, tmp197)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret196) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__80] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$80$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__80__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret196__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp197__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp197__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret196__1, atspre_g1int_eq_int(arg0, tmp197__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret196__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__80__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$80$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__80__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret196__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp197__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp197__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret196__2, atspre_g1int_eq_int(arg0, tmp197__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret196__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__80__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$19(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__19, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__19, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__19) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__19, ATSLIB_056_prelude__ptr_alloc__17__19()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__19, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__19, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__19, tmp30__19) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__19) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$19(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__19()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__19, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__19, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__19) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__19] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$44$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__44__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp98__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp98__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret97__3, atspre_g1int_gt_int(arg0, tmp98__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret97__3) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$20(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__20, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__20, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__20) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__20, ATSLIB_056_prelude__ptr_alloc__17__20()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__20, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__20, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__20, tmp30__20) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__20) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$20(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__20()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__20, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__20, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__20) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__20] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3913(line=148, offs=11) -- 4645(line=166, offs=12)
-*/
-/*
-local: choose_62$0(level=0), top_loop_89$0(level=1)
-global: choose_62$0(level=0), top_loop_89$0(level=1)
-local: n$5132(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5133(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5132(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5133(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atsvoid_t0ype
-top_loop_89(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret213) ;
-ATStmpdec(tmp214, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp230) ;
-ATStmpdec(tmp231, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref232, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref233, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref247, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp248, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref249, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp254, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp257) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3913(line=148, offs=11) -- 4645(line=166, offs=12)
-*/
-ATSINSflab(__patsflab_top_loop_89):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3992(line=149, offs=9) -- 4645(line=166, offs=12)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4015(line=150, offs=13) -- 4016(line=150, offs=14)
-*/
-ATSINSlab(__atstmplab36):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3937(line=148, offs=35) -- 3938(line=148, offs=36)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab38) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4016(line=150, offs=14) -- 4016(line=150, offs=14)
-*/
-ATSINSlab(__atstmplab37):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4027(line=150, offs=25) -- 4040(line=150, offs=38)
-*/
-ATSINSmove(tmp214, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4020(line=150, offs=18) -- 4040(line=150, offs=38)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp214) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4020(line=150, offs=18) -- 4040(line=150, offs=38)
-*/
-ATSINSmove_void(tmpret213, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4054(line=151, offs=14) -- 4054(line=151, offs=14)
-*/
-ATSINSlab(__atstmplab38):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4059(line=151, offs=19) -- 4645(line=166, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4265(line=158, offs=31) -- 4270(line=158, offs=36)
-*/
-ATSINSmove(tmp231, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4256(line=158, offs=22) -- 4276(line=158, offs=42)
-*/
-ATSINSmove_void(tmp230, top_loop_89(env0, env1, tmp231, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4293(line=159, offs=17) -- 4296(line=159, offs=20)
-*/
-/*
-ATSINStmpdec(tmpref232) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4299(line=159, offs=23) -- 4311(line=159, offs=35)
-*/
-ATSINSmove(tmpref232, choose_62(env1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4328(line=160, offs=17) -- 4334(line=160, offs=23)
-*/
-/*
-ATSINStmpdec(tmpref233) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4337(line=160, offs=26) -- 4354(line=160, offs=43)
-*/
-ATSINSmove(tmpref233, ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(arg0, env0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4371(line=161, offs=17) -- 4381(line=161, offs=27)
-*/
-/*
-ATSINStmpdec(tmpref247) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4398(line=161, offs=44) -- 4403(line=161, offs=49)
-*/
-ATSINSmove(tmp248, atspre_g1int_sub_int(env1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4384(line=161, offs=30) -- 4412(line=161, offs=58)
-*/
-ATSINSmove(tmpref247, negate_if_odd_92(tmp248, tmpref233)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4429(line=162, offs=17) -- 4439(line=162, offs=27)
-*/
-/*
-ATSINStmpdec(tmpref249) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4442(line=162, offs=30) -- 4478(line=162, offs=66)
-*/
-ATSINSmove(tmpref249, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(tmpref232, ATSPMVrefarg0(tmpref247))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4507(line=163, offs=29) -- 4543(line=163, offs=65)
-*/
-ATSINSmove(tmp254, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref249))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4500(line=163, offs=22) -- 4543(line=163, offs=65)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp254) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4565(line=164, offs=22) -- 4587(line=164, offs=44)
-*/
-ATSINSmove_void(tmp257, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(tmpref247)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4610(line=165, offs=22) -- 4632(line=165, offs=44)
-*/
-ATSINSmove_void(tmpret213, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(tmpref249)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4059(line=151, offs=19) -- 4645(line=166, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret213) ;
-} /* end of [top_loop_89] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$21(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__21, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__21, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__21) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__21, ATSLIB_056_prelude__ptr_alloc__17__21()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__21, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__21, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__21, tmp30__21) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__21) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$21(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__21()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__21, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__21, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__21) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__21] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4076(line=152, offs=16) -- 4221(line=156, offs=31)
-*/
-/*
-local: 
-global: negate_if_odd_92$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-negate_if_odd_92(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret219, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp220, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp225, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4076(line=152, offs=16) -- 4221(line=156, offs=31)
-*/
-ATSINSflab(__patsflab_negate_if_odd_92):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4139(line=153, offs=18) -- 4144(line=153, offs=23)
-*/
-ATSINSmove(tmp225, atspre_g0int_mod_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4139(line=153, offs=18) -- 4148(line=153, offs=27)
-*/
-ATSINSmove(tmp220, ATSLIB_056_prelude__eq_g0int_int__93__1(tmp225, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4136(line=153, offs=15) -- 4221(line=156, offs=31)
-*/
-ATSif(
-tmp220
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4170(line=154, offs=17) -- 4171(line=154, offs=18)
-*/
-ATSINSmove(tmpret219, arg1) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4207(line=156, offs=17) -- 4220(line=156, offs=30)
-*/
-ATSINSmove(tmpret219, ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(arg1)) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret219) ;
-} /* end of [negate_if_odd_92] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$93$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__93(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret221, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp222, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp222, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4624))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret221, PMVtmpltcst(g0int_eq<S2Evar(tk(4624))>)(arg0, tmp222)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret221) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__93] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$93$1(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__93__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret221__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp222__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp222__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret221__1, atspre_g0int_eq_int(arg0, tmp222__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret221__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__93__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3629(line=165, offs=3) -- 3684(line=170, offs=2)
-*/
-/*
-local: 
-global: neg_intinf0$98$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret226, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp227) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3659(line=168, offs=10) -- 3679(line=168, offs=30)
-*/
-ATSINSmove_void(tmp227, atscntrb_gmp_mpz_neg1(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3636(line=165, offs=10) -- 3637(line=165, offs=11)
-*/
-ATSINSmove(tmpret226, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret226) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3629(line=165, offs=3) -- 3684(line=170, offs=2)
-*/
-/*
-local: 
-global: neg_intinf0$98$1(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret226__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp227__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3659(line=168, offs=10) -- 3679(line=168, offs=30)
-*/
-ATSINSmove_void(tmp227__1, atscntrb_gmp_mpz_neg1(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3636(line=165, offs=10) -- 3637(line=165, offs=11)
-*/
-ATSINSmove(tmpret226__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret226__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14073(line=810, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-local: 
-global: pow_int_int$100$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret234, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp235, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp236) ;
-// ATStmpdec_void(tmp237) ;
-ATStmpdec(tmp238, atstkind_t0ype(atstype_ulint)) ;
-ATStmpdec(tmp239, atstkind_t0ype(atstype_ulint)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14127(line=814, offs=10) -- 14143(line=814, offs=26)
-*/
-ATSINSmove(tmp235, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14153(line=815, offs=10) -- 14175(line=815, offs=32)
-*/
-ATSINSmove_void(tmp236, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp235, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14215(line=817, offs=31) -- 14224(line=817, offs=40)
-*/
-ATSINSmove(tmp238, atspre_g1int2uint_int_ulint(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14227(line=817, offs=43) -- 14235(line=817, offs=51)
-*/
-ATSINSmove(tmp239, atspre_g1int2uint_int_ulint(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14187(line=817, offs=3) -- 14237(line=817, offs=53)
-*/
-ATSINSmove_void(tmp237, atscntrb_gmp_mpz_ui_pow_ui(ATSPMVrefarg1(ATSSELrecsin(tmp235, atstkind_type(atstype_ptrk), atslab__2)), tmp238, tmp239)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14105(line=811, offs=19)
-*/
-ATSINSmove(tmpret234, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp235)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret234) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14073(line=810, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-local: 
-global: pow_int_int$100$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret234__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp235__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp236__1) ;
-// ATStmpdec_void(tmp237__1) ;
-ATStmpdec(tmp238__1, atstkind_t0ype(atstype_ulint)) ;
-ATStmpdec(tmp239__1, atstkind_t0ype(atstype_ulint)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14127(line=814, offs=10) -- 14143(line=814, offs=26)
-*/
-ATSINSmove(tmp235__1, ATSLIB_056_prelude__ptr_alloc__17__22()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14153(line=815, offs=10) -- 14175(line=815, offs=32)
-*/
-ATSINSmove_void(tmp236__1, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp235__1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14215(line=817, offs=31) -- 14224(line=817, offs=40)
-*/
-ATSINSmove(tmp238__1, atspre_g1int2uint_int_ulint(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14227(line=817, offs=43) -- 14235(line=817, offs=51)
-*/
-ATSINSmove(tmp239__1, atspre_g1int2uint_int_ulint(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14187(line=817, offs=3) -- 14237(line=817, offs=53)
-*/
-ATSINSmove_void(tmp237__1, atscntrb_gmp_mpz_ui_pow_ui(ATSPMVrefarg1(ATSSELrecsin(tmp235__1, atstkind_type(atstype_ptrk), atslab__2)), tmp238__1, tmp239__1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14105(line=811, offs=19)
-*/
-ATSINSmove(tmpret234__1, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp235__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret234__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$22(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__22()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__22, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__22, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__22) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__22] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$103$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret250, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp251) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp251, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret250, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret250) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$103$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret250__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp251__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp251__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret250__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret250__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9__3, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8__3, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__4) ;
-// ATStmpdec_void(tmp23__4) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__4, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__4, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__4) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__5) ;
-// ATStmpdec_void(tmp23__5) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__5, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__5, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__5) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$59$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret141__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp142__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp142__3, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret141__3, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret141__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$6(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__6) ;
-// ATStmpdec_void(tmp23__6) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__6, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__6, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__6) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4979(line=179, offs=4) -- 5523(line=199, offs=6)
-*/
-/*
-local: stirling2_79$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), bell_110$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-bell_110(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret271, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref286, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp287) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4979(line=179, offs=4) -- 5523(line=199, offs=6)
-*/
-ATSINSflab(__patsflab_bell_110):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5017(line=180, offs=3) -- 5523(line=199, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5373(line=191, offs=5) -- 5517(line=198, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5392(line=192, offs=9) -- 5393(line=192, offs=10)
-*/
-ATSINSlab(__atstmplab42):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4992(line=179, offs=17) -- 4993(line=179, offs=18)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab44) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5393(line=192, offs=10) -- 5393(line=192, offs=10)
-*/
-ATSINSlab(__atstmplab43):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5397(line=192, offs=14) -- 5410(line=192, offs=27)
-*/
-ATSINSmove(tmpret271, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5420(line=193, offs=10) -- 5420(line=193, offs=10)
-*/
-ATSINSlab(__atstmplab44):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5425(line=193, offs=15) -- 5517(line=198, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5441(line=194, offs=13) -- 5444(line=194, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref286) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5470(line=195, offs=18) -- 5486(line=195, offs=34)
-*/
-ATSINSmove_void(tmp287, sum_loop_111(arg0, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref286)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5504(line=197, offs=9) -- 5507(line=197, offs=12)
-*/
-ATSINSmove(tmpret271, tmpref286) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5425(line=193, offs=15) -- 5517(line=198, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5017(line=180, offs=3) -- 5523(line=199, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret271) ;
-} /* end of [bell_110] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5029(line=181, offs=9) -- 5363(line=189, offs=10)
-*/
-/*
-local: stirling2_79$0(level=0), sum_loop_111$0(level=1)
-global: stirling2_79$0(level=0), sum_loop_111$0(level=1)
-local: n$5149(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5149(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atsvoid_t0ype
-sum_loop_111(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret272) ;
-ATStmpdec(tmp273, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp274) ;
-ATStmpdec(tmp275, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref276, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp277, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5029(line=181, offs=9) -- 5363(line=189, offs=10)
-*/
-ATSINSflab(__patsflab_sum_loop_111):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5119(line=182, offs=7) -- 5363(line=189, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5140(line=183, offs=11) -- 5141(line=183, offs=12)
-*/
-ATSINSlab(__atstmplab39):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5066(line=181, offs=46) -- 5067(line=181, offs=47)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab41) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5141(line=183, offs=12) -- 5141(line=183, offs=12)
-*/
-ATSINSlab(__atstmplab40):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5152(line=183, offs=23) -- 5167(line=183, offs=38)
-*/
-ATSINSmove(tmp273, stirling2_79(env0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5145(line=183, offs=16) -- 5167(line=183, offs=38)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp273) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5145(line=183, offs=16) -- 5167(line=183, offs=38)
-*/
-ATSINSmove_void(tmpret272, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5179(line=184, offs=12) -- 5179(line=184, offs=12)
-*/
-ATSINSlab(__atstmplab41):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5184(line=184, offs=17) -- 5363(line=189, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5214(line=185, offs=29) -- 5219(line=185, offs=34)
-*/
-ATSINSmove(tmp275, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5205(line=185, offs=20) -- 5225(line=185, offs=40)
-*/
-ATSINSmove_void(tmp274, sum_loop_111(env0, tmp275, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5240(line=186, offs=15) -- 5243(line=186, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref276) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5246(line=186, offs=21) -- 5261(line=186, offs=36)
-*/
-ATSINSmove(tmpref276, stirling2_79(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5288(line=187, offs=27) -- 5317(line=187, offs=56)
-*/
-ATSINSmove(tmp277, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref276))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5281(line=187, offs=20) -- 5317(line=187, offs=56)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp277) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5337(line=188, offs=20) -- 5352(line=188, offs=35)
-*/
-ATSINSmove_void(tmpret272, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(tmpref276)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5184(line=184, offs=17) -- 5363(line=189, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret272) ;
-} /* end of [sum_loop_111] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8__4, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9__4) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9__4, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8__4, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8__4) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$7(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__7) ;
-// ATStmpdec_void(tmp23__7) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__7, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__7, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__7) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$22(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__22, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__22, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__22) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__22, ATSLIB_056_prelude__ptr_alloc__17__23()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__22, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__22, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__22, tmp30__22) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__22) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$23(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__23()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__23, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__23, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__23) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__23] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5528(line=201, offs=4) -- 5951(line=217, offs=6)
-*/
-/*
-local: choose_62$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), max_regions_116$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-max_regions_116(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret288, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref303, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp304) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5528(line=201, offs=4) -- 5951(line=217, offs=6)
-*/
-ATSINSflab(__patsflab_max_regions_116):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5573(line=202, offs=3) -- 5951(line=217, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5901(line=213, offs=9) -- 5902(line=213, offs=10)
-*/
-/*
-ATSINStmpdec(tmpref303) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5924(line=214, offs=14) -- 5934(line=214, offs=24)
-*/
-ATSINSmove_void(tmp304, loop_117(arg0, ATSPMVi0nt(4), ATSPMVrefarg1(ATSPMVptrof(tmpref303)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5944(line=216, offs=5) -- 5945(line=216, offs=6)
-*/
-ATSINSmove(tmpret288, tmpref303) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5573(line=202, offs=3) -- 5951(line=217, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret288) ;
-} /* end of [max_regions_116] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5585(line=203, offs=9) -- 5887(line=211, offs=10)
-*/
-/*
-local: choose_62$0(level=0), loop_117$0(level=1)
-global: choose_62$0(level=0), loop_117$0(level=1)
-local: n$5158(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5158(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atsvoid_t0ype
-loop_117(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret289) ;
-ATStmpdec(tmp290, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp295) ;
-ATStmpdec(tmp296, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref297, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp298, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5585(line=203, offs=9) -- 5887(line=211, offs=10)
-*/
-ATSINSflab(__patsflab_loop_117):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5658(line=204, offs=7) -- 5887(line=211, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5679(line=205, offs=11) -- 5680(line=205, offs=12)
-*/
-ATSINSlab(__atstmplab45):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5605(line=203, offs=29) -- 5606(line=203, offs=30)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab47) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5680(line=205, offs=12) -- 5680(line=205, offs=12)
-*/
-ATSINSlab(__atstmplab46):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5691(line=205, offs=23) -- 5704(line=205, offs=36)
-*/
-ATSINSmove(tmp290, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5684(line=205, offs=16) -- 5704(line=205, offs=36)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp290) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5684(line=205, offs=16) -- 5704(line=205, offs=36)
-*/
-ATSINSmove_void(tmpret289, ATSPMVempty()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5716(line=206, offs=12) -- 5716(line=206, offs=12)
-*/
-ATSINSlab(__atstmplab47):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5721(line=206, offs=17) -- 5887(line=211, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5747(line=207, offs=25) -- 5752(line=207, offs=30)
-*/
-ATSINSmove(tmp296, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5742(line=207, offs=20) -- 5758(line=207, offs=36)
-*/
-ATSINSmove_void(tmp295, loop_117(env0, tmp296, ATSPMVrefarg1(arg1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5773(line=208, offs=15) -- 5774(line=208, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref297) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5777(line=208, offs=19) -- 5789(line=208, offs=31)
-*/
-ATSINSmove(tmpref297, choose_62(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5816(line=209, offs=27) -- 5843(line=209, offs=54)
-*/
-ATSINSmove(tmp298, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref297))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5809(line=209, offs=20) -- 5843(line=209, offs=54)
-*/
-ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp298) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5863(line=210, offs=20) -- 5876(line=210, offs=33)
-*/
-ATSINSmove_void(tmpret289, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(tmpref297)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5721(line=206, offs=17) -- 5887(line=211, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn_void(tmpret289) ;
-} /* end of [loop_117] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$15$23(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret29__23, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30__23, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp31__23) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp30__23, ATSLIB_056_prelude__ptr_alloc__17__24()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp31__23, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__23, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret29__23, tmp30__23) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret29__23) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$17$24(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__17__24()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret35__24, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret35__24, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret35__24) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__17__24] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_intinf1$6$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret8__5, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp9__5) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
-*/
-ATSINSmove_void(tmp9__5, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
-*/
-ATSINSmove(tmpret8__5, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret8__5) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$12$8(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret22__8) ;
-// ATStmpdec_void(tmp23__8) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp23__8, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret22__8, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret22__8) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5974(line=219, offs=22) -- 5997(line=220, offs=15)
-*/
-/*
-local: choose_62$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), choose_ats$122$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret305, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5963(line=219, offs=11) -- 5997(line=220, offs=15)
-*/
-ATSINSflab(__patsflab_choose_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5985(line=220, offs=3) -- 5997(line=220, offs=15)
-*/
-ATSINSmove(tmpret305, choose_62(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret305) ;
-} /* end of [choose_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6030(line=222, offs=32) -- 6045(line=223, offs=10)
-*/
-/*
-local: dfact_41$0(level=0)
-global: dfact_ref_35$0(level=0), dfact_41$0(level=0), double_factorial_ats$123$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-double_factorial_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret306, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6009(line=222, offs=11) -- 6046(line=223, offs=11)
-*/
-ATSINSflab(__patsflab_double_factorial_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6038(line=223, offs=3) -- 6045(line=223, offs=10)
-*/
-ATSINSmove(tmpret306, dfact_41(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret306) ;
-} /* end of [double_factorial_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6072(line=225, offs=25) -- 6086(line=226, offs=9)
-*/
-/*
-local: fact_34$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), factorial_ats$124$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-factorial_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret307, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6058(line=225, offs=11) -- 6087(line=226, offs=10)
-*/
-ATSINSflab(__patsflab_factorial_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6080(line=226, offs=3) -- 6086(line=226, offs=9)
-*/
-ATSINSmove(tmpret307, fact_34(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret307) ;
-} /* end of [factorial_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6111(line=228, offs=23) -- 6128(line=229, offs=12)
-*/
-/*
-local: catalan_50$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), catalan_50$0(level=0), catalan_ats$125$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-catalan_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret308, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6099(line=228, offs=11) -- 6129(line=229, offs=13)
-*/
-ATSINSflab(__patsflab_catalan_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6119(line=229, offs=3) -- 6128(line=229, offs=12)
-*/
-ATSINSmove(tmpret308, catalan_50(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret308) ;
-} /* end of [catalan_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6158(line=231, offs=28) -- 6180(line=232, offs=17)
-*/
-/*
-local: derangements_0$0(level=0)
-global: derangements_0$0(level=0), derangements_ats$126$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-derangements_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret309, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6141(line=231, offs=11) -- 6181(line=232, offs=18)
-*/
-ATSINSflab(__patsflab_derangements_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6166(line=232, offs=3) -- 6180(line=232, offs=17)
-*/
-ATSINSmove(tmpret309, derangements_0(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret309) ;
-} /* end of [derangements_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6210(line=234, offs=28) -- 6239(line=235, offs=21)
-*/
-/*
-local: permutations_42$0(level=0)
-global: permutations_42$0(level=0), permutations_ats$127$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-permutations_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret310, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6193(line=234, offs=11) -- 6239(line=235, offs=21)
-*/
-ATSINSflab(__patsflab_permutations_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6221(line=235, offs=3) -- 6239(line=235, offs=21)
-*/
-ATSINSmove(tmpret310, permutations_42(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret310) ;
-} /* end of [permutations_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6265(line=237, offs=25) -- 6291(line=238, offs=18)
-*/
-/*
-local: stirling2_79$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), stirling2_ats$128$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-stirling2_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret311, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6251(line=237, offs=11) -- 6291(line=238, offs=18)
-*/
-ATSINSflab(__patsflab_stirling2_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6276(line=238, offs=3) -- 6291(line=238, offs=18)
-*/
-ATSINSmove(tmpret311, stirling2_79(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret311) ;
-} /* end of [stirling2_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6319(line=240, offs=27) -- 6340(line=241, offs=16)
-*/
-/*
-local: max_regions_116$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), max_regions_116$0(level=0), max_regions_ats$129$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-max_regions_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret312, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6303(line=240, offs=11) -- 6341(line=241, offs=17)
-*/
-ATSINSflab(__patsflab_max_regions_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6327(line=241, offs=3) -- 6340(line=241, offs=16)
-*/
-ATSINSmove(tmpret312, max_regions_116(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret312) ;
-} /* end of [max_regions_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6362(line=243, offs=20) -- 6376(line=244, offs=9)
-*/
-/*
-local: bell_110$0(level=0)
-global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), bell_110$0(level=0), bell_ats$130$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-bell_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret313, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6353(line=243, offs=11) -- 6377(line=244, offs=10)
-*/
-ATSINSflab(__patsflab_bell_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6370(line=244, offs=3) -- 6376(line=244, offs=9)
+** The C code is generated by [ATS/Postiats-0-3-13]
+**
+*/
+
+/*
+** 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)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.sats: 1(line=1, offs=1) -- 63(line=1, offs=63)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_clear)
+ATSdyncst_mac(atspre_ptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atspre_g1int_gt_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_mpz)
+ATSdyncst_mac(atspre_g1int_mul_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+ATSdyncst_mac(atspre_g0int2int_int_int)
+ATSdyncst_mac(atspre_g0int_eq_int)
+ATSdyncst_mac(atspre_g0int_mod_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_neg1)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_ui_pow_ui)
+ATSdyncst_mac(atspre_g1int2uint_int_ulint)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+ATSextern()
+atsvoid_t0ype
+the_atsexncon_initize
+(
+  atstype_exnconptr d2c, atstype_string exnmsg
+) ;
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+/*
+exnconlst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+/*
+assumelst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
+/*
+assumelst-declaration(end)
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+derangements_0(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__1() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__2() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__3() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__4() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__5() ;
+
+ATSstatic()
+atsvoid_t0ype
+fact_ref_28(atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__6() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__7() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fact_34(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atsvoid_t0ype
+dfact_ref_35(atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__8() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__9() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+dfact_41(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+permutations_42(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atsvoid_t0ype
+loop_43(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44(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__44__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__10() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+catalan_50(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+numerator_loop_51(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__11() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__12() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__13() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+choose_62(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atsvoid_t0ype
+numerator_loop_63(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__14() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__15() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__16() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__17() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__18() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+stirling2_79(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__80(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__80__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__80__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__19() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__20() ;
+
+ATSstatic()
+atsvoid_t0ype
+top_loop_89(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__21() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+negate_if_odd_92(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__93(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__93__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__22() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+bell_110(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atsvoid_t0ype
+sum_loop_111(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__23() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+max_regions_116(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atsvoid_t0ype
+loop_117(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atsrefarg1_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__24() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+double_factorial_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+catalan_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+derangements_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+permutations_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+stirling2_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+max_regions_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+bell_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 326(line=11, offs=4) -- 1017(line=35, offs=6)
+*/
+/*
+local: 
+global: derangements_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+derangements_0(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp46, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp51, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 326(line=11, offs=4) -- 1017(line=35, offs=6)
+*/
+ATSINSflab(__patsflab_derangements_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 372(line=12, offs=3) -- 1017(line=35, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 859(line=30, offs=5) -- 1011(line=34, offs=59)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 878(line=31, offs=9) -- 879(line=31, offs=10)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 347(line=11, offs=25) -- 348(line=11, offs=26)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 879(line=31, offs=10) -- 879(line=31, offs=10)
+*/
+ATSINSlab(__atstmplab1):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 883(line=31, offs=14) -- 896(line=31, offs=27)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 905(line=32, offs=9) -- 906(line=32, offs=10)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 347(line=11, offs=25) -- 348(line=11, offs=26)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab4) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 906(line=32, offs=10) -- 906(line=32, offs=10)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 911(line=32, offs=15) -- 924(line=32, offs=28)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(ATSPMVi0nt(0))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 933(line=33, offs=9) -- 934(line=33, offs=10)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 347(line=11, offs=25) -- 348(line=11, offs=26)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab6) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 934(line=33, offs=10) -- 934(line=33, offs=10)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 939(line=33, offs=15) -- 952(line=33, offs=28)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 962(line=34, offs=10) -- 962(line=34, offs=10)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 972(line=34, offs=20) -- 977(line=34, offs=25)
+*/
+ATSINSmove(tmp45, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 982(line=34, offs=30) -- 995(line=34, offs=43)
+*/
+ATSINSmove(tmp46, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 997(line=34, offs=45) -- 1010(line=34, offs=58)
+*/
+ATSINSmove(tmp51, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 967(line=34, offs=15) -- 1011(line=34, offs=59)
+*/
+ATSINSmove(tmpret0, loop_1(tmp45, ATSPMVi0nt(2), tmp46, tmp51)) ;
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 372(line=12, offs=3) -- 1017(line=35, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [derangements_0] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 384(line=13, offs=9) -- 849(line=28, offs=12)
+*/
+/*
+local: loop_1$0(level=1)
+global: loop_1$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_type(atstype_ptrk) arg2, atstkind_type(atstype_ptrk) arg3)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy3, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref7, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref12, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp17, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref18, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp21) ;
+ATStmpdec(tmpref26, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 384(line=13, offs=9) -- 849(line=28, offs=12)
+*/
+ATSINSflab(__patsflab_loop_1):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 508(line=14, offs=10) -- 513(line=14, offs=15)
+*/
+ATSINSmove(tmp2, ATSLIB_056_prelude__lt_g1int_int__2__1(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 505(line=14, offs=7) -- 849(line=28, offs=12)
+*/
+ATSif(
+tmp2
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 527(line=15, offs=9) -- 671(line=20, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 545(line=16, offs=15) -- 546(line=16, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref7) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 549(line=16, offs=19) -- 576(line=16, offs=46)
+*/
+ATSINSmove(tmpref7, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(arg3, ATSPMVrefarg0(arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 591(line=17, offs=15) -- 592(line=17, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref12) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 595(line=17, offs=19) -- 616(line=17, offs=40)
+*/
+ATSINSmove(tmpref12, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(tmpref7, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 646(line=19, offs=19) -- 651(line=19, offs=24)
+*/
+ATSINSmove(tmp17, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 638(line=19, offs=11) -- 659(line=19, offs=32)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp17) ;
+ATSINSmove_tlcal(apy2, tmpref12) ;
+ATSINSmove_tlcal(apy3, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSargmove_tlcal(arg3, apy3) ;
+ATSINSfgoto(__patsflab_loop_1) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 527(line=15, offs=9) -- 671(line=20, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 691(line=22, offs=9) -- 849(line=28, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 709(line=23, offs=15) -- 710(line=23, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref18) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 713(line=23, offs=19) -- 740(line=23, offs=46)
+*/
+ATSINSmove(tmpref18, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(arg3, ATSPMVrefarg0(arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 759(line=24, offs=19) -- 773(line=24, offs=33)
+*/
+ATSINSmove_void(tmp21, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 789(line=25, offs=15) -- 790(line=25, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref26) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 793(line=25, offs=19) -- 814(line=25, offs=40)
+*/
+ATSINSmove(tmpref26, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(tmpref18, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 836(line=27, offs=11) -- 837(line=27, offs=12)
+*/
+ATSINSmove(tmpret1, tmpref26) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 691(line=22, offs=9) -- 849(line=28, offs=12)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret1) ;
+} /* end of [loop_1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$2$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp4, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4631))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret3, PMVtmpltcst(g1int_lt<S2Evar(tk(4631))>)(arg0, tmp4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__2] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$2$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = Some(tk(4631) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret3__1, atspre_g1int_lt_int(arg0, tmp4__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__2__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__1, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__1, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__2, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__2, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22) ;
+// ATStmpdec_void(tmp23) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__1) ;
+// ATStmpdec_void(tmp23__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__1, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__2, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__2, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29, tmp30) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__1, ATSLIB_056_prelude__ptr_alloc__17__1()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__1, tmp30__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__2, ATSLIB_056_prelude__ptr_alloc__17__2()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__2, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__2, tmp30__2) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__3, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__3, ATSLIB_056_prelude__ptr_alloc__17__3()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__3, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__3, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__3, tmp30__3) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__3()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__3, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$4(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__4, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__4, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__4) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__4, ATSLIB_056_prelude__ptr_alloc__17__4()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__4, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__4, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__4, tmp30__4) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__4()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__4, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__4) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$5(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__5, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__5, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__5, ATSLIB_056_prelude__ptr_alloc__17__5()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__5, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__5, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__5, tmp30__5) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__5()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__5, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__5) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1023(line=37, offs=5) -- 1274(line=45, offs=8)
+*/
+/*
+local: fact_ref_28$0(level=0)
+global: fact_ref_28$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atsvoid_t0ype
+fact_ref_28(atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret56) ;
+ATStmpdec(tmp57, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp62, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp67) ;
+ATStmpdec(tmp68, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp69, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1023(line=37, offs=5) -- 1274(line=45, offs=8)
+*/
+ATSINSflab(__patsflab_fact_ref_28):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1096(line=38, offs=3) -- 1274(line=45, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1113(line=39, offs=7) -- 1114(line=39, offs=8)
+*/
+ATSINSlab(__atstmplab7):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1047(line=37, offs=29) -- 1048(line=37, offs=30)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab9) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1114(line=39, offs=8) -- 1114(line=39, offs=8)
+*/
+ATSINSlab(__atstmplab8):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1125(line=39, offs=19) -- 1138(line=39, offs=32)
+*/
+ATSINSmove(tmp57, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1118(line=39, offs=12) -- 1138(line=39, offs=32)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp57) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1118(line=39, offs=12) -- 1138(line=39, offs=32)
+*/
+ATSINSmove_void(tmpret56, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1145(line=40, offs=7) -- 1146(line=40, offs=8)
+*/
+ATSINSlab(__atstmplab9):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1047(line=37, offs=29) -- 1048(line=37, offs=30)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab11) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1146(line=40, offs=8) -- 1146(line=40, offs=8)
+*/
+ATSINSlab(__atstmplab10):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1157(line=40, offs=19) -- 1170(line=40, offs=32)
+*/
+ATSINSmove(tmp62, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1150(line=40, offs=12) -- 1170(line=40, offs=32)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp62) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1150(line=40, offs=12) -- 1170(line=40, offs=32)
+*/
+ATSINSmove_void(tmpret56, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1178(line=41, offs=8) -- 1178(line=41, offs=8)
+*/
+ATSINSlab(__atstmplab11):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1183(line=41, offs=13) -- 1274(line=45, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1211(line=42, offs=25) -- 1216(line=42, offs=30)
+*/
+ATSINSmove(tmp68, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1202(line=42, offs=16) -- 1222(line=42, offs=36)
+*/
+ATSINSmove_void(tmp67, fact_ref_28(tmp68, ATSPMVrefarg1(arg1))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1243(line=44, offs=14) -- 1266(line=44, offs=37)
+*/
+ATSINSmove(tmp69, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1236(line=44, offs=7) -- 1266(line=44, offs=37)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp69) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1236(line=44, offs=7) -- 1266(line=44, offs=37)
+*/
+ATSINSmove_void(tmpret56, ATSPMVempty()) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1183(line=41, offs=13) -- 1274(line=45, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret56) ;
+} /* end of [fact_ref_28] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$6(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__6, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__6, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__6) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__6, ATSLIB_056_prelude__ptr_alloc__17__6()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__6, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__6, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__6, tmp30__6) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__6) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$6(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__6()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__6, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__6, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__6) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__6] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$7(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__7, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__7, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__7) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__7, ATSLIB_056_prelude__ptr_alloc__17__7()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__7, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__7, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__7, tmp30__7) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__7) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__7()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__7, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__7, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__7) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__7] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__3, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__3, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1279(line=47, offs=4) -- 1395(line=53, offs=6)
+*/
+/*
+local: fact_ref_28$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fact_34(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret72, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref73, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp74) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1279(line=47, offs=4) -- 1395(line=53, offs=6)
+*/
+ATSINSflab(__patsflab_fact_34):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1317(line=48, offs=3) -- 1395(line=53, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1329(line=49, offs=9) -- 1332(line=49, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref73) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1360(line=50, offs=14) -- 1376(line=50, offs=30)
+*/
+ATSINSmove_void(tmp74, fact_ref_28(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref73)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1386(line=52, offs=5) -- 1389(line=52, offs=8)
+*/
+ATSINSmove(tmpret72, tmpref73) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1317(line=48, offs=3) -- 1395(line=53, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret72) ;
+} /* end of [fact_34] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1401(line=55, offs=5) -- 1670(line=64, offs=8)
+*/
+/*
+local: dfact_ref_35$0(level=0)
+global: dfact_ref_35$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atsvoid_t0ype
+dfact_ref_35(atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret75) ;
+ATStmpdec(tmp76, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp81, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp86) ;
+ATStmpdec(tmp87, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref88, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1401(line=55, offs=5) -- 1670(line=64, offs=8)
+*/
+ATSINSflab(__patsflab_dfact_ref_35):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1475(line=56, offs=3) -- 1670(line=64, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1492(line=57, offs=7) -- 1493(line=57, offs=8)
+*/
+ATSINSlab(__atstmplab12):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1426(line=55, offs=30) -- 1427(line=55, offs=31)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1493(line=57, offs=8) -- 1493(line=57, offs=8)
+*/
+ATSINSlab(__atstmplab13):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1504(line=57, offs=19) -- 1517(line=57, offs=32)
+*/
+ATSINSmove(tmp76, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1497(line=57, offs=12) -- 1517(line=57, offs=32)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp76) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1497(line=57, offs=12) -- 1517(line=57, offs=32)
+*/
+ATSINSmove_void(tmpret75, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1524(line=58, offs=7) -- 1525(line=58, offs=8)
+*/
+ATSINSlab(__atstmplab14):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1426(line=55, offs=30) -- 1427(line=55, offs=31)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab16) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1525(line=58, offs=8) -- 1525(line=58, offs=8)
+*/
+ATSINSlab(__atstmplab15):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1536(line=58, offs=19) -- 1549(line=58, offs=32)
+*/
+ATSINSmove(tmp81, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1529(line=58, offs=12) -- 1549(line=58, offs=32)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp81) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1529(line=58, offs=12) -- 1549(line=58, offs=32)
+*/
+ATSINSmove_void(tmpret75, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1557(line=59, offs=8) -- 1557(line=59, offs=8)
+*/
+ATSINSlab(__atstmplab16):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1562(line=59, offs=13) -- 1670(line=64, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1591(line=60, offs=26) -- 1596(line=60, offs=31)
+*/
+ATSINSmove(tmp87, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1581(line=60, offs=16) -- 1602(line=60, offs=37)
+*/
+ATSINSmove_void(tmp86, dfact_ref_35(tmp87, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1613(line=61, offs=11) -- 1614(line=61, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref88) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1617(line=61, offs=15) -- 1640(line=61, offs=38)
+*/
+ATSINSmove(tmpref88, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1654(line=63, offs=7) -- 1662(line=63, offs=15)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmpref88) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1654(line=63, offs=7) -- 1662(line=63, offs=15)
+*/
+ATSINSmove_void(tmpret75, ATSPMVempty()) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1562(line=59, offs=13) -- 1670(line=64, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret75) ;
+} /* end of [dfact_ref_35] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$8(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__8, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__8, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__8) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__8, ATSLIB_056_prelude__ptr_alloc__17__8()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__8, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__8, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__8, tmp30__8) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__8) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$8(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__8()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__8, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__8, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__8) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__8] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$9(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__9, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__9, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__9) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__9, ATSLIB_056_prelude__ptr_alloc__17__9()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__9, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__9, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__9, tmp30__9) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__9) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$9(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__9()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__9, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__9, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__9) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__9] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$4(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__4, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__4) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__4, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__4, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1676(line=66, offs=5) -- 1801(line=72, offs=6)
+*/
+/*
+local: dfact_ref_35$0(level=0)
+global: dfact_ref_35$0(level=0), dfact_41$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+dfact_41(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret91, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref92, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp93) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1676(line=66, offs=5) -- 1801(line=72, offs=6)
+*/
+ATSINSflab(__patsflab_dfact_41):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1722(line=67, offs=3) -- 1801(line=72, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1734(line=68, offs=9) -- 1737(line=68, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref92) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1765(line=69, offs=14) -- 1782(line=69, offs=31)
+*/
+ATSINSmove_void(tmp93, dfact_ref_35(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref92)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1792(line=71, offs=5) -- 1795(line=71, offs=8)
+*/
+ATSINSmove(tmpret91, tmpref92) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1722(line=67, offs=3) -- 1801(line=72, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret91) ;
+} /* end of [dfact_41] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1806(line=74, offs=4) -- 2194(line=86, offs=6)
+*/
+/*
+local: 
+global: permutations_42$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+permutations_42(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref115, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp116) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1806(line=74, offs=4) -- 2194(line=86, offs=6)
+*/
+ATSINSflab(__patsflab_permutations_42):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1893(line=75, offs=3) -- 2194(line=86, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2138(line=82, offs=9) -- 2141(line=82, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref115) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2163(line=83, offs=14) -- 2175(line=83, offs=26)
+*/
+ATSINSmove_void(tmp116, loop_43(arg0, arg1, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref115)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2185(line=85, offs=5) -- 2188(line=85, offs=8)
+*/
+ATSINSmove(tmpret94, tmpref115) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1893(line=75, offs=3) -- 2194(line=86, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94) ;
+} /* end of [permutations_42] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1905(line=76, offs=9) -- 2124(line=80, offs=37)
+*/
+/*
+local: loop_43$0(level=1)
+global: loop_43$0(level=1)
+local: n$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5107(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5107(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atsvoid_t0ype
+loop_43(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret95) ;
+ATStmpdec(tmp96, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp101, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp102, atstkind_t0ype(atstype_int)) ;
+// ATStmpdec_void(tmp103) ;
+ATStmpdec(tmp104, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp105, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp108, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1905(line=76, offs=9) -- 2124(line=80, offs=37)
+*/
+ATSINSflab(__patsflab_loop_43):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2002(line=77, offs=14) -- 2007(line=77, offs=19)
+*/
+ATSINSmove(tmp102, atspre_g1int_sub_int(env0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2002(line=77, offs=14) -- 2011(line=77, offs=23)
+*/
+ATSINSmove(tmp101, atspre_g1int_add_int(tmp102, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1998(line=77, offs=10) -- 2011(line=77, offs=23)
+*/
+ATSINSmove(tmp96, ATSLIB_056_prelude__gt_g1int_int__44__1(arg0, tmp101)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1995(line=77, offs=7) -- 2124(line=80, offs=37)
+*/
+ATSif(
+tmp96
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2031(line=78, offs=15) -- 2036(line=78, offs=20)
+*/
+ATSINSmove(tmp104, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2026(line=78, offs=10) -- 2042(line=78, offs=26)
+*/
+ATSINSmove_void(tmp103, loop_43(env0, env1, tmp104, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2052(line=78, offs=36) -- 2075(line=78, offs=59)
+*/
+ATSINSmove(tmp105, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2045(line=78, offs=29) -- 2075(line=78, offs=59)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp105) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2045(line=78, offs=29) -- 2075(line=78, offs=59)
+*/
+ATSINSmove_void(tmpret95, ATSPMVempty()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2103(line=80, offs=16) -- 2124(line=80, offs=37)
+*/
+ATSINSmove(tmp114, atspre_g1int_sub_int(env0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2103(line=80, offs=16) -- 2124(line=80, offs=37)
+*/
+ATSINSmove(tmp113, atspre_g1int_add_int(tmp114, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2103(line=80, offs=16) -- 2124(line=80, offs=37)
+*/
+ATSINSmove(tmp108, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(tmp113)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2096(line=80, offs=9) -- 2124(line=80, offs=37)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp108) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2096(line=80, offs=9) -- 2124(line=80, offs=37)
+*/
+ATSINSmove_void(tmpret95, ATSPMVempty()) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn_void(tmpret95) ;
+} /* end of [loop_43] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$44$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret97, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp98, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp98, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4637))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret97, PMVtmpltcst(g1int_gt<S2Evar(tk(4637))>)(arg0, tmp98)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret97) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__44] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$44$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret97__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp98__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp98__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret97__1, atspre_g1int_gt_int(arg0, tmp98__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret97__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__5, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__5, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__5, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$10(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__10, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__10, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__10) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__10, ATSLIB_056_prelude__ptr_alloc__17__10()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__10, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__10, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__10, tmp30__10) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__10) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$10(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__10()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__10, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__10, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__10) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__10] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2199(line=88, offs=4) -- 2763(line=111, offs=6)
+*/
+/*
+local: fact_34$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), catalan_50$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+catalan_50(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret117, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref138, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref139, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref140, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp145) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2199(line=88, offs=4) -- 2763(line=111, offs=6)
+*/
+ATSINSflab(__patsflab_catalan_50):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2240(line=89, offs=3) -- 2763(line=111, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2515(line=100, offs=5) -- 2757(line=110, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2534(line=101, offs=9) -- 2535(line=101, offs=10)
+*/
+ATSINSlab(__atstmplab20):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2215(line=88, offs=20) -- 2216(line=88, offs=21)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab22) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2535(line=101, offs=10) -- 2535(line=101, offs=10)
+*/
+ATSINSlab(__atstmplab21):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2539(line=101, offs=14) -- 2552(line=101, offs=27)
+*/
+ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2561(line=102, offs=9) -- 2562(line=102, offs=10)
+*/
+ATSINSlab(__atstmplab22):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2215(line=88, offs=20) -- 2216(line=88, offs=21)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab24) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2562(line=102, offs=10) -- 2562(line=102, offs=10)
+*/
+ATSINSlab(__atstmplab23):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2566(line=102, offs=14) -- 2579(line=102, offs=27)
+*/
+ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2589(line=103, offs=10) -- 2589(line=103, offs=10)
+*/
+ATSINSlab(__atstmplab24):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2594(line=103, offs=15) -- 2757(line=110, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2610(line=104, offs=13) -- 2611(line=104, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref138) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2614(line=104, offs=17) -- 2630(line=104, offs=33)
+*/
+ATSINSmove(tmpref138, numerator_loop_51(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2644(line=105, offs=13) -- 2645(line=105, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref139) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2648(line=105, offs=17) -- 2654(line=105, offs=23)
+*/
+ATSINSmove(tmpref139, fact_34(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2668(line=106, offs=13) -- 2669(line=106, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref140) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2672(line=106, offs=17) -- 2697(line=106, offs=42)
+*/
+ATSINSmove(tmpref140, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(tmpref138, ATSPMVrefarg0(tmpref139))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2714(line=107, offs=17) -- 2727(line=107, offs=30)
+*/
+ATSINSmove_void(tmp145, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(tmpref139)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2746(line=109, offs=9) -- 2747(line=109, offs=10)
+*/
+ATSINSmove(tmpret117, tmpref140) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2594(line=103, offs=15) -- 2757(line=110, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2240(line=89, offs=3) -- 2763(line=111, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret117) ;
+} /* end of [catalan_50] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2252(line=90, offs=9) -- 2505(line=98, offs=12)
+*/
+/*
+local: numerator_loop_51$0(level=1)
+global: numerator_loop_51$0(level=1)
+local: n$5113(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5113(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+numerator_loop_51(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret118, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp123, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref124, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref126, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp129, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2252(line=90, offs=9) -- 2505(line=98, offs=12)
+*/
+ATSINSflab(__patsflab_numerator_loop_51):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2323(line=91, offs=7) -- 2505(line=98, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2344(line=92, offs=11) -- 2345(line=92, offs=12)
+*/
+ATSINSlab(__atstmplab17):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2294(line=90, offs=51) -- 2295(line=90, offs=52)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab19) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2345(line=92, offs=12) -- 2345(line=92, offs=12)
+*/
+ATSINSlab(__atstmplab18):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2349(line=92, offs=16) -- 2366(line=92, offs=33)
+*/
+ATSINSmove(tmp123, atspre_g1int_add_int(env0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2349(line=92, offs=16) -- 2366(line=92, offs=33)
+*/
+ATSINSmove(tmpret118, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(tmp123)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2378(line=93, offs=12) -- 2378(line=93, offs=12)
+*/
+ATSINSlab(__atstmplab19):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2383(line=93, offs=17) -- 2505(line=98, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2401(line=94, offs=15) -- 2402(line=94, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref124) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2420(line=94, offs=34) -- 2425(line=94, offs=39)
+*/
+ATSINSmove(tmp125, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2405(line=94, offs=19) -- 2426(line=94, offs=40)
+*/
+ATSINSmove(tmpref124, numerator_loop_51(env0, tmp125)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2441(line=95, offs=15) -- 2442(line=95, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref126) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2464(line=95, offs=38) -- 2469(line=95, offs=43)
+*/
+ATSINSmove(tmp129, atspre_g1int_add_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2445(line=95, offs=19) -- 2470(line=95, offs=44)
+*/
+ATSINSmove(tmpref126, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(tmpref124, tmp129)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2492(line=97, offs=11) -- 2493(line=97, offs=12)
+*/
+ATSINSmove(tmpret118, tmpref126) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2383(line=93, offs=17) -- 2505(line=98, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret118) ;
+} /* end of [numerator_loop_51] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$11(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__11, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__11, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__11) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__11, ATSLIB_056_prelude__ptr_alloc__17__11()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__11, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__11, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__11, tmp30__11) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__11) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$11(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__11()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__11, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__11, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__11) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__11] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$6(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__6, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__6) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__6, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__6, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__6) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$12(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__12, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__12, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__12) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__12, ATSLIB_056_prelude__ptr_alloc__17__12()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__12, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__12, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__12, tmp30__12) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__12) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$12(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__12()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__12, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__12, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__12) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__12] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$13(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__13, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__13, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__13) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__13, ATSLIB_056_prelude__ptr_alloc__17__13()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__13, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__13, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__13, tmp30__13) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__13) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$13(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__13()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__13, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__13, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__13) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__13] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$59$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret141, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp142) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp142, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret141, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret141) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$59$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret141__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp142__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp142__1, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret141__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret141__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__2) ;
+// ATStmpdec_void(tmp23__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__2, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2768(line=113, offs=4) -- 3506(line=139, offs=6)
+*/
+/*
+local: fact_34$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+choose_62(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret148, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp177, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref184, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp185) ;
+ATStmpdec(tmpref186, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref187, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp190) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2768(line=113, offs=4) -- 3506(line=139, offs=6)
+*/
+ATSINSflab(__patsflab_choose_62):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2827(line=114, offs=3) -- 3506(line=139, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3194(line=126, offs=5) -- 3500(line=138, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3213(line=127, offs=9) -- 3214(line=127, offs=10)
+*/
+ATSINSlab(__atstmplab30):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2802(line=113, offs=38) -- 2803(line=113, offs=39)
+*/
+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab32) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3214(line=127, offs=10) -- 3214(line=127, offs=10)
+*/
+ATSINSlab(__atstmplab31):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3218(line=127, offs=14) -- 3231(line=127, offs=27)
+*/
+ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3240(line=128, offs=9) -- 3241(line=128, offs=10)
+*/
+ATSINSlab(__atstmplab32):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2802(line=113, offs=38) -- 2803(line=113, offs=39)
+*/
+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab34) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3241(line=128, offs=10) -- 3241(line=128, offs=10)
+*/
+ATSINSlab(__atstmplab33):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3245(line=128, offs=14) -- 3257(line=128, offs=26)
+*/
+ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(arg0)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3268(line=129, offs=10) -- 3268(line=129, offs=10)
+*/
+ATSINSlab(__atstmplab34):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3274(line=129, offs=16) -- 3279(line=129, offs=21)
+*/
+ATSINSmove(tmp177, ATSLIB_056_prelude__gt_g1int_int__44__2(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3274(line=129, offs=16) -- 3279(line=129, offs=21)
+*/
+ATSifnthen(ATSCKpat_bool(tmp177, ATSPMVbool_true())) { ATSINSgoto(__atstmplab35) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3283(line=129, offs=25) -- 3296(line=129, offs=38)
+*/
+ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(ATSPMVi0nt(0))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3306(line=130, offs=10) -- 3306(line=130, offs=10)
+*/
+ATSINSlab(__atstmplab35):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3311(line=130, offs=15) -- 3500(line=138, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3327(line=131, offs=13) -- 3328(line=131, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref184) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3354(line=132, offs=18) -- 3374(line=132, offs=38)
+*/
+ATSINSmove_void(tmp185, numerator_loop_63(arg0, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref184)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3387(line=133, offs=13) -- 3388(line=133, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref186) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3391(line=133, offs=17) -- 3397(line=133, offs=23)
+*/
+ATSINSmove(tmpref186, fact_34(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3411(line=134, offs=13) -- 3412(line=134, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref187) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3415(line=134, offs=17) -- 3440(line=134, offs=42)
+*/
+ATSINSmove(tmpref187, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(tmpref184, ATSPMVrefarg0(tmpref186))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3457(line=135, offs=17) -- 3470(line=135, offs=30)
+*/
+ATSINSmove_void(tmp190, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(tmpref186)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3489(line=137, offs=9) -- 3490(line=137, offs=10)
+*/
+ATSINSmove(tmpret148, tmpref187) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3311(line=130, offs=15) -- 3500(line=138, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2827(line=114, offs=3) -- 3506(line=139, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret148) ;
+} /* end of [choose_62] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2839(line=115, offs=9) -- 3184(line=124, offs=12)
+*/
+/*
+local: numerator_loop_63$0(level=1)
+global: numerator_loop_63$0(level=1)
+local: n$5124(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5124(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atsvoid_t0ype
+numerator_loop_63(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret149) ;
+ATStmpdec(tmp150, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp155, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp160, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp161, atstkind_t0ype(atstype_int)) ;
+// ATStmpdec_void(tmp162) ;
+ATStmpdec(tmp163, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref164, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp167, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp168, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2839(line=115, offs=9) -- 3184(line=124, offs=12)
+*/
+ATSINSflab(__patsflab_numerator_loop_63):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2934(line=116, offs=7) -- 3184(line=124, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2955(line=117, offs=11) -- 2956(line=117, offs=12)
+*/
+ATSINSlab(__atstmplab25):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2881(line=115, offs=51) -- 2882(line=115, offs=52)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab27) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2956(line=117, offs=12) -- 2956(line=117, offs=12)
+*/
+ATSINSlab(__atstmplab26):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2967(line=117, offs=23) -- 2979(line=117, offs=35)
+*/
+ATSINSmove(tmp150, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(env0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2960(line=117, offs=16) -- 2979(line=117, offs=35)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp150) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2960(line=117, offs=16) -- 2979(line=117, offs=35)
+*/
+ATSINSmove_void(tmpret149, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2991(line=118, offs=11) -- 2992(line=118, offs=12)
+*/
+ATSINSlab(__atstmplab27):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2881(line=115, offs=51) -- 2882(line=115, offs=52)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab29) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2992(line=118, offs=12) -- 2992(line=118, offs=12)
+*/
+ATSINSlab(__atstmplab28):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3003(line=118, offs=23) -- 3026(line=118, offs=46)
+*/
+ATSINSmove(tmp161, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3003(line=118, offs=23) -- 3026(line=118, offs=46)
+*/
+ATSINSmove(tmp160, atspre_g1int_mul_int(tmp161, env0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3003(line=118, offs=23) -- 3026(line=118, offs=46)
+*/
+ATSINSmove(tmp155, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(tmp160)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2996(line=118, offs=16) -- 3026(line=118, offs=46)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp155) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2996(line=118, offs=16) -- 3026(line=118, offs=46)
+*/
+ATSINSmove_void(tmpret149, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3038(line=119, offs=12) -- 3038(line=119, offs=12)
+*/
+ATSINSlab(__atstmplab29):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3043(line=119, offs=17) -- 3184(line=124, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3081(line=120, offs=35) -- 3086(line=120, offs=40)
+*/
+ATSINSmove(tmp163, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3066(line=120, offs=20) -- 3092(line=120, offs=46)
+*/
+ATSINSmove_void(tmp162, numerator_loop_63(env0, tmp163, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3107(line=121, offs=15) -- 3108(line=121, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref164) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3132(line=121, offs=40) -- 3137(line=121, offs=45)
+*/
+ATSINSmove(tmp168, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3132(line=121, offs=40) -- 3141(line=121, offs=49)
+*/
+ATSINSmove(tmp167, atspre_g1int_sub_int(tmp168, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3111(line=121, offs=19) -- 3142(line=121, offs=50)
+*/
+ATSINSmove(tmpref164, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp167)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3164(line=123, offs=11) -- 3172(line=123, offs=19)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmpref164) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3164(line=123, offs=11) -- 3172(line=123, offs=19)
+*/
+ATSINSmove_void(tmpret149, ATSPMVempty()) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3043(line=119, offs=17) -- 3184(line=124, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret149) ;
+} /* end of [numerator_loop_63] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$14(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__14, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__14, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__14) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__14, ATSLIB_056_prelude__ptr_alloc__17__14()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__14, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__14, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__14, tmp30__14) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__14) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$14(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__14()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__14, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__14, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__14) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__14] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$15(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__15, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__15, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__15) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__15, ATSLIB_056_prelude__ptr_alloc__17__15()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__15, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__15, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__15, tmp30__15) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__15) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$15(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__15()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__15, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__15, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__15) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__15] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__7, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__7) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__7, atscntrb_gmp_mpz_mul2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__7, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__7) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$16(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__16, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__16, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__16) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__16, ATSLIB_056_prelude__ptr_alloc__17__16()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__16, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__16, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__16, tmp30__16) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__16) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$16(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__16()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__16, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__16, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__16) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__16] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$17(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__17, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__17, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__17) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__17, ATSLIB_056_prelude__ptr_alloc__17__17()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__17, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__17, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__17, tmp30__17) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__17) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$17(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__17()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__17, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__17, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__17) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__17] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$44$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret97__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp98__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp98__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret97__2, atspre_g1int_gt_int(arg0, tmp98__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret97__2) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$18(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__18, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__18, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__18) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__18, ATSLIB_056_prelude__ptr_alloc__17__18()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__18, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__18, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__18, tmp30__18) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__18) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$18(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__18()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__18, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__18, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__18) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__18] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$59$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret141__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp142__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp142__2, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret141__2, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret141__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__3) ;
+// ATStmpdec_void(tmp23__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__3, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3511(line=141, offs=4) -- 4598(line=173, offs=8)
+*/
+/*
+local: fact_34$0(level=0), choose_62$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+stirling2_79(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret193, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp194, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp195, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp206, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref262, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp263) ;
+ATStmpdec(tmpref264, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref265, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp268) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3511(line=141, offs=4) -- 4598(line=173, offs=8)
+*/
+ATSINSflab(__patsflab_stirling2_79):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3586(line=143, offs=7) -- 3600(line=143, offs=21)
+*/
+ATSINSmove(tmp195, ATSLIB_056_prelude__eq_g1int_int__80__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3586(line=143, offs=7) -- 3600(line=143, offs=21)
+*/
+ATSif(
+tmp195
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3586(line=143, offs=7) -- 3600(line=143, offs=21)
+*/
+ATSINSmove(tmp194, ATSLIB_056_prelude__eq_g1int_int__80__2(arg0, ATSPMVi0nt(0))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3586(line=143, offs=7) -- 3600(line=143, offs=21)
+*/
+ATSINSmove(tmp194, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3573(line=142, offs=3) -- 4598(line=173, offs=8)
+*/
+ATSif(
+tmp194
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3604(line=143, offs=25) -- 3617(line=143, offs=38)
+*/
+ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3624(line=144, offs=7) -- 3629(line=144, offs=12)
+*/
+ATSINSmove(tmp206, ATSLIB_056_prelude__gt_g1int_int__44__3(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3573(line=142, offs=3) -- 4598(line=173, offs=8)
+*/
+ATSif(
+tmp206
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3633(line=144, offs=16) -- 3646(line=144, offs=29)
+*/
+ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(ATSPMVi0nt(0))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3658(line=145, offs=12) -- 4598(line=173, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4422(line=166, offs=11) -- 4425(line=166, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref262) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4449(line=167, offs=16) -- 4465(line=167, offs=32)
+*/
+ATSINSmove_void(tmp263, top_loop_89(arg0, arg1, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref262)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4476(line=168, offs=11) -- 4479(line=168, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref264) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4482(line=168, offs=17) -- 4488(line=168, offs=23)
+*/
+ATSINSmove(tmpref264, fact_34(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4500(line=169, offs=11) -- 4506(line=169, offs=17)
+*/
+/*
+ATSINStmpdec(tmpref265) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4509(line=169, offs=20) -- 4538(line=169, offs=49)
+*/
+ATSINSmove(tmpref265, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(tmpref262, ATSPMVrefarg0(tmpref264))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4554(line=170, offs=16) -- 4569(line=170, offs=31)
+*/
+ATSINSmove_void(tmp268, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(tmpref264)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4584(line=172, offs=7) -- 4590(line=172, offs=13)
+*/
+ATSINSmove(tmpret193, tmpref265) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3658(line=145, offs=12) -- 4598(line=173, offs=8)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret193) ;
+} /* end of [stirling2_79] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$80$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__80(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret196, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp197, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp197, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4643))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret196, PMVtmpltcst(g1int_eq<S2Evar(tk(4643))>)(arg0, tmp197)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret196) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__80] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$80$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__80__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret196__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp197__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp197__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret196__1, atspre_g1int_eq_int(arg0, tmp197__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret196__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__80__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$80$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__80__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret196__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp197__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp197__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret196__2, atspre_g1int_eq_int(arg0, tmp197__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret196__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__80__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$19(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__19, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__19, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__19) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__19, ATSLIB_056_prelude__ptr_alloc__17__19()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__19, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__19, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__19, tmp30__19) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__19) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$19(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__19()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__19, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__19, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__19) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__19] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$44$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__44__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret97__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp98__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp98__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret97__3, atspre_g1int_gt_int(arg0, tmp98__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret97__3) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__44__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$20(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__20, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__20, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__20) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__20, ATSLIB_056_prelude__ptr_alloc__17__20()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__20, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__20, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__20, tmp30__20) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__20) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$20(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__20()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__20, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__20, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__20) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__20] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3672(line=146, offs=11) -- 4404(line=164, offs=12)
+*/
+/*
+local: choose_62$0(level=0), top_loop_89$0(level=1)
+global: choose_62$0(level=0), top_loop_89$0(level=1)
+local: n$5137(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5138(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5137(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), k$5138(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atsvoid_t0ype
+top_loop_89(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret213) ;
+ATStmpdec(tmp214, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp230) ;
+ATStmpdec(tmp231, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref232, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref233, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref247, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp248, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref249, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp254, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp257) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3672(line=146, offs=11) -- 4404(line=164, offs=12)
+*/
+ATSINSflab(__patsflab_top_loop_89):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3751(line=147, offs=9) -- 4404(line=164, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3774(line=148, offs=13) -- 3775(line=148, offs=14)
+*/
+ATSINSlab(__atstmplab36):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3696(line=146, offs=35) -- 3697(line=146, offs=36)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab38) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3775(line=148, offs=14) -- 3775(line=148, offs=14)
+*/
+ATSINSlab(__atstmplab37):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3786(line=148, offs=25) -- 3799(line=148, offs=38)
+*/
+ATSINSmove(tmp214, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3779(line=148, offs=18) -- 3799(line=148, offs=38)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp214) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3779(line=148, offs=18) -- 3799(line=148, offs=38)
+*/
+ATSINSmove_void(tmpret213, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3813(line=149, offs=14) -- 3813(line=149, offs=14)
+*/
+ATSINSlab(__atstmplab38):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3818(line=149, offs=19) -- 4404(line=164, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4024(line=156, offs=31) -- 4029(line=156, offs=36)
+*/
+ATSINSmove(tmp231, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4015(line=156, offs=22) -- 4035(line=156, offs=42)
+*/
+ATSINSmove_void(tmp230, top_loop_89(env0, env1, tmp231, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4052(line=157, offs=17) -- 4055(line=157, offs=20)
+*/
+/*
+ATSINStmpdec(tmpref232) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4058(line=157, offs=23) -- 4070(line=157, offs=35)
+*/
+ATSINSmove(tmpref232, choose_62(env1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4087(line=158, offs=17) -- 4093(line=158, offs=23)
+*/
+/*
+ATSINStmpdec(tmpref233) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4096(line=158, offs=26) -- 4113(line=158, offs=43)
+*/
+ATSINSmove(tmpref233, ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(arg0, env0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4130(line=159, offs=17) -- 4140(line=159, offs=27)
+*/
+/*
+ATSINStmpdec(tmpref247) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4157(line=159, offs=44) -- 4162(line=159, offs=49)
+*/
+ATSINSmove(tmp248, atspre_g1int_sub_int(env1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4143(line=159, offs=30) -- 4171(line=159, offs=58)
+*/
+ATSINSmove(tmpref247, negate_if_odd_92(tmp248, tmpref233)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4188(line=160, offs=17) -- 4198(line=160, offs=27)
+*/
+/*
+ATSINStmpdec(tmpref249) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4201(line=160, offs=30) -- 4237(line=160, offs=66)
+*/
+ATSINSmove(tmpref249, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(tmpref232, ATSPMVrefarg0(tmpref247))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4266(line=161, offs=29) -- 4302(line=161, offs=65)
+*/
+ATSINSmove(tmp254, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref249))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4259(line=161, offs=22) -- 4302(line=161, offs=65)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp254) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4324(line=162, offs=22) -- 4346(line=162, offs=44)
+*/
+ATSINSmove_void(tmp257, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(tmpref247)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4369(line=163, offs=22) -- 4391(line=163, offs=44)
+*/
+ATSINSmove_void(tmpret213, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(tmpref249)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3818(line=149, offs=19) -- 4404(line=164, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret213) ;
+} /* end of [top_loop_89] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$21(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__21, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__21, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__21) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__21, ATSLIB_056_prelude__ptr_alloc__17__21()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__21, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__21, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__21, tmp30__21) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__21) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$21(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__21()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__21, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__21, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__21) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__21] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3835(line=150, offs=16) -- 3980(line=154, offs=31)
+*/
+/*
+local: 
+global: negate_if_odd_92$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+negate_if_odd_92(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret219, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp220, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp225, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3835(line=150, offs=16) -- 3980(line=154, offs=31)
+*/
+ATSINSflab(__patsflab_negate_if_odd_92):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3898(line=151, offs=18) -- 3903(line=151, offs=23)
+*/
+ATSINSmove(tmp225, atspre_g0int_mod_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3898(line=151, offs=18) -- 3907(line=151, offs=27)
+*/
+ATSINSmove(tmp220, ATSLIB_056_prelude__eq_g0int_int__93__1(tmp225, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3895(line=151, offs=15) -- 3980(line=154, offs=31)
+*/
+ATSif(
+tmp220
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3929(line=152, offs=17) -- 3930(line=152, offs=18)
+*/
+ATSINSmove(tmpret219, arg1) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3966(line=154, offs=17) -- 3979(line=154, offs=30)
+*/
+ATSINSmove(tmpret219, ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(arg1)) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret219) ;
+} /* end of [negate_if_odd_92] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$93$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__93(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret221, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp222, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp222, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4628))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret221, PMVtmpltcst(g0int_eq<S2Evar(tk(4628))>)(arg0, tmp222)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret221) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__93] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$93$1(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__93__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret221__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp222__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp222__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret221__1, atspre_g0int_eq_int(arg0, tmp222__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret221__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__93__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3629(line=165, offs=3) -- 3684(line=170, offs=2)
+*/
+/*
+local: 
+global: neg_intinf0$98$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret226, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp227) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3659(line=168, offs=10) -- 3679(line=168, offs=30)
+*/
+ATSINSmove_void(tmp227, atscntrb_gmp_mpz_neg1(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3636(line=165, offs=10) -- 3637(line=165, offs=11)
+*/
+ATSINSmove(tmpret226, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret226) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3629(line=165, offs=3) -- 3684(line=170, offs=2)
+*/
+/*
+local: 
+global: neg_intinf0$98$1(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret226__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp227__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3659(line=168, offs=10) -- 3679(line=168, offs=30)
+*/
+ATSINSmove_void(tmp227__1, atscntrb_gmp_mpz_neg1(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3636(line=165, offs=10) -- 3637(line=165, offs=11)
+*/
+ATSINSmove(tmpret226__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret226__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14073(line=810, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+local: 
+global: pow_int_int$100$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret234, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp235, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp236) ;
+// ATStmpdec_void(tmp237) ;
+ATStmpdec(tmp238, atstkind_t0ype(atstype_ulint)) ;
+ATStmpdec(tmp239, atstkind_t0ype(atstype_ulint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14127(line=814, offs=10) -- 14143(line=814, offs=26)
+*/
+ATSINSmove(tmp235, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14153(line=815, offs=10) -- 14175(line=815, offs=32)
+*/
+ATSINSmove_void(tmp236, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp235, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14215(line=817, offs=31) -- 14224(line=817, offs=40)
+*/
+ATSINSmove(tmp238, atspre_g1int2uint_int_ulint(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14227(line=817, offs=43) -- 14235(line=817, offs=51)
+*/
+ATSINSmove(tmp239, atspre_g1int2uint_int_ulint(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14187(line=817, offs=3) -- 14237(line=817, offs=53)
+*/
+ATSINSmove_void(tmp237, atscntrb_gmp_mpz_ui_pow_ui(ATSPMVrefarg1(ATSSELrecsin(tmp235, atstkind_type(atstype_ptrk), atslab__2)), tmp238, tmp239)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14105(line=811, offs=19)
+*/
+ATSINSmove(tmpret234, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp235)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret234) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14073(line=810, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+local: 
+global: pow_int_int$100$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret234__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp235__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp236__1) ;
+// ATStmpdec_void(tmp237__1) ;
+ATStmpdec(tmp238__1, atstkind_t0ype(atstype_ulint)) ;
+ATStmpdec(tmp239__1, atstkind_t0ype(atstype_ulint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14127(line=814, offs=10) -- 14143(line=814, offs=26)
+*/
+ATSINSmove(tmp235__1, ATSLIB_056_prelude__ptr_alloc__17__22()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14153(line=815, offs=10) -- 14175(line=815, offs=32)
+*/
+ATSINSmove_void(tmp236__1, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp235__1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14215(line=817, offs=31) -- 14224(line=817, offs=40)
+*/
+ATSINSmove(tmp238__1, atspre_g1int2uint_int_ulint(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14227(line=817, offs=43) -- 14235(line=817, offs=51)
+*/
+ATSINSmove(tmp239__1, atspre_g1int2uint_int_ulint(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14187(line=817, offs=3) -- 14237(line=817, offs=53)
+*/
+ATSINSmove_void(tmp237__1, atscntrb_gmp_mpz_ui_pow_ui(ATSPMVrefarg1(ATSSELrecsin(tmp235__1, atstkind_type(atstype_ptrk), atslab__2)), tmp238__1, tmp239__1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14105(line=811, offs=19)
+*/
+ATSINSmove(tmpret234__1, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp235__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret234__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$22(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__22()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__22, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__22, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__22) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__22] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$103$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret250, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp251) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp251, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret250, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret250) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$103$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret250__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp251__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp251__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret250__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret250__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__3, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__3, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__4) ;
+// ATStmpdec_void(tmp23__4) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__4, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__4, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__5) ;
+// ATStmpdec_void(tmp23__5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__5, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__5, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$59$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret141__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp142__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp142__3, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret141__3, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret141__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$6(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__6) ;
+// ATStmpdec_void(tmp23__6) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__6, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__6, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__6) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4603(line=175, offs=4) -- 5147(line=195, offs=6)
+*/
+/*
+local: stirling2_79$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), bell_110$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+bell_110(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret271, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref286, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp287) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4603(line=175, offs=4) -- 5147(line=195, offs=6)
+*/
+ATSINSflab(__patsflab_bell_110):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4641(line=176, offs=3) -- 5147(line=195, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4997(line=187, offs=5) -- 5141(line=194, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5016(line=188, offs=9) -- 5017(line=188, offs=10)
+*/
+ATSINSlab(__atstmplab42):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4616(line=175, offs=17) -- 4617(line=175, offs=18)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab44) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5017(line=188, offs=10) -- 5017(line=188, offs=10)
+*/
+ATSINSlab(__atstmplab43):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5021(line=188, offs=14) -- 5034(line=188, offs=27)
+*/
+ATSINSmove(tmpret271, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5044(line=189, offs=10) -- 5044(line=189, offs=10)
+*/
+ATSINSlab(__atstmplab44):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5049(line=189, offs=15) -- 5141(line=194, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5065(line=190, offs=13) -- 5068(line=190, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref286) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5094(line=191, offs=18) -- 5110(line=191, offs=34)
+*/
+ATSINSmove_void(tmp287, sum_loop_111(arg0, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref286)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5128(line=193, offs=9) -- 5131(line=193, offs=12)
+*/
+ATSINSmove(tmpret271, tmpref286) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5049(line=189, offs=15) -- 5141(line=194, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4641(line=176, offs=3) -- 5147(line=195, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret271) ;
+} /* end of [bell_110] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4653(line=177, offs=9) -- 4987(line=185, offs=10)
+*/
+/*
+local: stirling2_79$0(level=0), sum_loop_111$0(level=1)
+global: stirling2_79$0(level=0), sum_loop_111$0(level=1)
+local: n$5154(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5154(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atsvoid_t0ype
+sum_loop_111(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret272) ;
+ATStmpdec(tmp273, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp274) ;
+ATStmpdec(tmp275, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref276, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp277, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4653(line=177, offs=9) -- 4987(line=185, offs=10)
+*/
+ATSINSflab(__patsflab_sum_loop_111):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4743(line=178, offs=7) -- 4987(line=185, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4764(line=179, offs=11) -- 4765(line=179, offs=12)
+*/
+ATSINSlab(__atstmplab39):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4690(line=177, offs=46) -- 4691(line=177, offs=47)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab41) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4765(line=179, offs=12) -- 4765(line=179, offs=12)
+*/
+ATSINSlab(__atstmplab40):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4776(line=179, offs=23) -- 4791(line=179, offs=38)
+*/
+ATSINSmove(tmp273, stirling2_79(env0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4769(line=179, offs=16) -- 4791(line=179, offs=38)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp273) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4769(line=179, offs=16) -- 4791(line=179, offs=38)
+*/
+ATSINSmove_void(tmpret272, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4803(line=180, offs=12) -- 4803(line=180, offs=12)
+*/
+ATSINSlab(__atstmplab41):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4808(line=180, offs=17) -- 4987(line=185, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4838(line=181, offs=29) -- 4843(line=181, offs=34)
+*/
+ATSINSmove(tmp275, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4829(line=181, offs=20) -- 4849(line=181, offs=40)
+*/
+ATSINSmove_void(tmp274, sum_loop_111(env0, tmp275, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4864(line=182, offs=15) -- 4867(line=182, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref276) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4870(line=182, offs=21) -- 4885(line=182, offs=36)
+*/
+ATSINSmove(tmpref276, stirling2_79(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4912(line=183, offs=27) -- 4941(line=183, offs=56)
+*/
+ATSINSmove(tmp277, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref276))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4905(line=183, offs=20) -- 4941(line=183, offs=56)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp277) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4961(line=184, offs=20) -- 4976(line=184, offs=35)
+*/
+ATSINSmove_void(tmpret272, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(tmpref276)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4808(line=180, offs=17) -- 4987(line=185, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret272) ;
+} /* end of [sum_loop_111] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__4, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__4) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__4, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__4, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__7) ;
+// ATStmpdec_void(tmp23__7) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__7, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__7, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__7) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$22(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__22, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__22, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__22) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__22, ATSLIB_056_prelude__ptr_alloc__17__23()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__22, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__22, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__22, tmp30__22) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__22) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$23(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__23()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__23, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__23, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__23) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__23] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5152(line=197, offs=4) -- 5575(line=213, offs=6)
+*/
+/*
+local: choose_62$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), max_regions_116$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+max_regions_116(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret288, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref303, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp304) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5152(line=197, offs=4) -- 5575(line=213, offs=6)
+*/
+ATSINSflab(__patsflab_max_regions_116):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5197(line=198, offs=3) -- 5575(line=213, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5525(line=209, offs=9) -- 5526(line=209, offs=10)
+*/
+/*
+ATSINStmpdec(tmpref303) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5548(line=210, offs=14) -- 5558(line=210, offs=24)
+*/
+ATSINSmove_void(tmp304, loop_117(arg0, ATSPMVi0nt(4), ATSPMVrefarg1(ATSPMVptrof(tmpref303)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5568(line=212, offs=5) -- 5569(line=212, offs=6)
+*/
+ATSINSmove(tmpret288, tmpref303) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5197(line=198, offs=3) -- 5575(line=213, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret288) ;
+} /* end of [max_regions_116] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5209(line=199, offs=9) -- 5511(line=207, offs=10)
+*/
+/*
+local: choose_62$0(level=0), loop_117$0(level=1)
+global: choose_62$0(level=0), loop_117$0(level=1)
+local: n$5163(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5163(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atsvoid_t0ype
+loop_117(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atsrefarg1_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret289) ;
+ATStmpdec(tmp290, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp295) ;
+ATStmpdec(tmp296, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref297, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp298, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5209(line=199, offs=9) -- 5511(line=207, offs=10)
+*/
+ATSINSflab(__patsflab_loop_117):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5282(line=200, offs=7) -- 5511(line=207, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5303(line=201, offs=11) -- 5304(line=201, offs=12)
+*/
+ATSINSlab(__atstmplab45):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5229(line=199, offs=29) -- 5230(line=199, offs=30)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab47) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5304(line=201, offs=12) -- 5304(line=201, offs=12)
+*/
+ATSINSlab(__atstmplab46):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5315(line=201, offs=23) -- 5328(line=201, offs=36)
+*/
+ATSINSmove(tmp290, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5308(line=201, offs=16) -- 5328(line=201, offs=36)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp290) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5308(line=201, offs=16) -- 5328(line=201, offs=36)
+*/
+ATSINSmove_void(tmpret289, ATSPMVempty()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5340(line=202, offs=12) -- 5340(line=202, offs=12)
+*/
+ATSINSlab(__atstmplab47):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5345(line=202, offs=17) -- 5511(line=207, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5371(line=203, offs=25) -- 5376(line=203, offs=30)
+*/
+ATSINSmove(tmp296, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5366(line=203, offs=20) -- 5382(line=203, offs=36)
+*/
+ATSINSmove_void(tmp295, loop_117(env0, tmp296, ATSPMVrefarg1(arg1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5397(line=204, offs=15) -- 5398(line=204, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref297) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5401(line=204, offs=19) -- 5413(line=204, offs=31)
+*/
+ATSINSmove(tmpref297, choose_62(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5440(line=205, offs=27) -- 5467(line=205, offs=54)
+*/
+ATSINSmove(tmp298, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref297))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5433(line=205, offs=20) -- 5467(line=205, offs=54)
+*/
+ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp298) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5487(line=206, offs=20) -- 5500(line=206, offs=33)
+*/
+ATSINSmove_void(tmpret289, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(tmpref297)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5345(line=202, offs=17) -- 5511(line=207, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn_void(tmpret289) ;
+} /* end of [loop_117] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$15$23(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__23, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__23, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__23) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp30__23, ATSLIB_056_prelude__ptr_alloc__17__24()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__23, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__23, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret29__23, tmp30__23) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret29__23) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$17$24(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__24()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__24, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret35__24, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__24) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__24] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__5, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__5, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__5, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$8(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__8) ;
+// ATStmpdec_void(tmp23__8) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__8, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__8, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__8) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5598(line=215, offs=22) -- 5621(line=216, offs=15)
+*/
+/*
+local: choose_62$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), choose_ats$122$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret305, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5587(line=215, offs=11) -- 5621(line=216, offs=15)
+*/
+ATSINSflab(__patsflab_choose_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5609(line=216, offs=3) -- 5621(line=216, offs=15)
+*/
+ATSINSmove(tmpret305, choose_62(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret305) ;
+} /* end of [choose_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5654(line=218, offs=32) -- 5669(line=219, offs=10)
+*/
+/*
+local: dfact_41$0(level=0)
+global: dfact_ref_35$0(level=0), dfact_41$0(level=0), double_factorial_ats$123$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+double_factorial_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret306, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5633(line=218, offs=11) -- 5670(line=219, offs=11)
+*/
+ATSINSflab(__patsflab_double_factorial_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5662(line=219, offs=3) -- 5669(line=219, offs=10)
+*/
+ATSINSmove(tmpret306, dfact_41(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret306) ;
+} /* end of [double_factorial_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5696(line=221, offs=25) -- 5710(line=222, offs=9)
+*/
+/*
+local: fact_34$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), factorial_ats$124$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret307, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5682(line=221, offs=11) -- 5711(line=222, offs=10)
+*/
+ATSINSflab(__patsflab_factorial_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5704(line=222, offs=3) -- 5710(line=222, offs=9)
+*/
+ATSINSmove(tmpret307, fact_34(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret307) ;
+} /* end of [factorial_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5735(line=224, offs=23) -- 5752(line=225, offs=12)
+*/
+/*
+local: catalan_50$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), catalan_50$0(level=0), catalan_ats$125$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+catalan_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret308, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5723(line=224, offs=11) -- 5753(line=225, offs=13)
+*/
+ATSINSflab(__patsflab_catalan_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5743(line=225, offs=3) -- 5752(line=225, offs=12)
+*/
+ATSINSmove(tmpret308, catalan_50(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret308) ;
+} /* end of [catalan_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5782(line=227, offs=28) -- 5804(line=228, offs=17)
+*/
+/*
+local: derangements_0$0(level=0)
+global: derangements_0$0(level=0), derangements_ats$126$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+derangements_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret309, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5765(line=227, offs=11) -- 5805(line=228, offs=18)
+*/
+ATSINSflab(__patsflab_derangements_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5790(line=228, offs=3) -- 5804(line=228, offs=17)
+*/
+ATSINSmove(tmpret309, derangements_0(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret309) ;
+} /* end of [derangements_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5834(line=230, offs=28) -- 5863(line=231, offs=21)
+*/
+/*
+local: permutations_42$0(level=0)
+global: permutations_42$0(level=0), permutations_ats$127$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+permutations_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret310, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5817(line=230, offs=11) -- 5863(line=231, offs=21)
+*/
+ATSINSflab(__patsflab_permutations_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5845(line=231, offs=3) -- 5863(line=231, offs=21)
+*/
+ATSINSmove(tmpret310, permutations_42(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret310) ;
+} /* end of [permutations_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5889(line=233, offs=25) -- 5915(line=234, offs=18)
+*/
+/*
+local: stirling2_79$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), stirling2_ats$128$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+stirling2_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret311, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5875(line=233, offs=11) -- 5915(line=234, offs=18)
+*/
+ATSINSflab(__patsflab_stirling2_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5900(line=234, offs=3) -- 5915(line=234, offs=18)
+*/
+ATSINSmove(tmpret311, stirling2_79(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret311) ;
+} /* end of [stirling2_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5943(line=236, offs=27) -- 5964(line=237, offs=16)
+*/
+/*
+local: max_regions_116$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), max_regions_116$0(level=0), max_regions_ats$129$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+max_regions_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret312, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5927(line=236, offs=11) -- 5965(line=237, offs=17)
+*/
+ATSINSflab(__patsflab_max_regions_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5951(line=237, offs=3) -- 5964(line=237, offs=16)
+*/
+ATSINSmove(tmpret312, max_regions_116(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret312) ;
+} /* end of [max_regions_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5986(line=239, offs=20) -- 6000(line=240, offs=9)
+*/
+/*
+local: bell_110$0(level=0)
+global: fact_ref_28$0(level=0), fact_34$0(level=0), choose_62$0(level=0), stirling2_79$0(level=0), bell_110$0(level=0), bell_ats$130$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+bell_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret313, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5977(line=239, offs=11) -- 6001(line=240, offs=10)
+*/
+ATSINSflab(__patsflab_bell_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5994(line=240, offs=3) -- 6000(line=240, offs=9)
 */
 ATSINSmove(tmpret313, bell_110(arg0)) ;
 
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,11032 +1,11016 @@
 /*
 **
-** The C code is generated by [ATS/Postiats-0-3-11]
-**
-*/
-
-/*
-** 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)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/math.cats"
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.sats: 1(line=1, offs=1) -- 63(line=1, offs=63)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.sats: 64(line=2, offs=1) -- 95(line=2, offs=32)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-typedef
-ATSstruct {
-atstkind_t0ype(atstype_int) atslab__first ;
-atstkind_t0ype(atstype_int) atslab__second ;
-} postiats_tyrec_0 ;
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstkind_t0ype(atstype_int) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_1 ;
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstyvar_type(a) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_2 ;
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstyvar_type(a) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_3 ;
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-ATSdyncst_mac(atspre_g0int2uint_int_uint)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init)
-ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
-ATSdyncst_mac(atspre_g1int2int_int_int)
-ATSdyncst_mac(atspre_g1int_gt_int)
-ATSdyncst_mac(atspre_g1int_half_int)
-ATSdyncst_mac(atspre_g0int_mod_int)
-ATSdyncst_mac(atspre_g0int2int_int_int)
-ATSdyncst_mac(atspre_g0int_eq_int)
-ATSdyncst_mac(atspre_g0int_mul_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_cmp_int)
-ATSdyncst_mac(atspre_g0int_lt_int)
-ATSdyncst_mac(atspre_g1int_neg_int)
-ATSdyncst_mac(atspre_g0int_gt_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_clear)
-ATSdyncst_mac(atspre_ptr_free)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_g0float2int_double_int)
-ATSdyncst_mac(atslib_libats_libc_sqrt_double)
-ATSdyncst_mac(atspre_g0int2float_int_double)
-ATSdyncst_mac(atspre_g1int_lt_int)
-ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int)) ;
-ATSdyncst_mac(atspre_g0int_div_int)
-ATSdyncst_mac(atspre_g1int_gte_int)
-ATSdyncst_mac(atspre_g1int_neq_int)
-ATSdyncst_mac(atspre_g1int_div_int)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atspre_g0int_half_int)
-ATSdyncst_mac(atspre_g1int_mul_int)
-ATSdyncst_mac(atspre_g0int_neg_int)
-ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors, (atstkind_t0ype(atstype_int)), atstkind_type(atstype_ptrk)) ;
-ATSdyncst_mac(atspre_g0int_add_int)
-ATSdyncst_extfun(sum_divisors_ats, (atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int)) ;
-ATSdyncst_mac(atspre_g0int_neq_int)
-ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors, (atstkind_t0ype(atstype_int)), atstkind_type(atstype_ptrk)) ;
-ATSdyncst_mac(atspre_g0int_sub_int)
-ATSdyncst_mac(atspre_cloptr_free)
-ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-ATSextern()
-atsvoid_t0ype
-the_atsexncon_initize
-(
-  atstype_exnconptr d2c, atstype_string exnmsg
-) ;
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-/*
-exnconlst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-/*
-assumelst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
-/*
-assumelst-declaration(end)
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_0(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__1() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-big_exp_17(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_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__eq_g1int_int__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_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__lt_g0int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27(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_g0int_int__27__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__2() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__3() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__4() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_48(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_50(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_51(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__52(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__52__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstype_boxed
-__patsfun_67(atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_68(atstype_bool) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_69(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70(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__70__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_78(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_79(atstkind_type(atstype_ptrk), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_80(atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_81(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_82(atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_83(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_85(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_86(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-div_gt_zero_87(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-jacobi_88(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-legendre_89(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_mod_prime_90(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__11(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-get_multiplicity_98(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_99(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__12(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-jacobi2_103(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__13(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__14(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__15(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__16(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__17(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-ATSLIB_056_prelude__stream_vt_length__112(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-#if(0)
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_113__113(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-ATSLIB_056_prelude__stream_vt_length__112__1(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_113__113__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_117(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__18(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__19(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__20(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-rip_125(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g0int_int__126(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_g0int_int__126__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_132(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_134(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_135(atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_136(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__21(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_139(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_140(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_141(atstype_bool) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_143(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__22(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-radical_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-product_148(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_149(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-postiats_tyrec_0
-adjust_contents_150(postiats_tyrec_0, atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstyvar_type(res)
-ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152(atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-#if(0)
-ATSstatic()
-atstyvar_type(res)
-loop_153__153(atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr) ;
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-postiats_tyrec_0
-ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152__1(atstkind_type(atstype_ptrk), postiats_tyrec_0, atstype_cloptr) ;
-
-ATSstatic()
-postiats_tyrec_0
-loop_153__153__1(atstkind_type(atstype_ptrk), postiats_tyrec_0, atstype_cloptr) ;
-
-ATSstatic()
-postiats_tyrec_0
-__patsfun_156(postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))) ;
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_158(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__2(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__5() ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-jacobi_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSclosurerize_beg(__patsfun_67, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_67__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_67__cfun
-(
-__patsfun_67__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_67(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_67__closureinit
-(
-__patsfun_67__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_67__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_67__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_67__closureinit(ATS_MALLOC(sizeof(__patsfun_67__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_68, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_68__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_68__cfun
-(
-__patsfun_68__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_68(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_68__closureinit
-(
-__patsfun_68__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_68__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_68__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_68__closureinit(ATS_MALLOC(sizeof(__patsfun_68__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_78, (atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_type(atstype_ptrk) env1 ;
-} __patsfun_78__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_78__cfun
-(
-__patsfun_78__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_78(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_78__closureinit
-(
-__patsfun_78__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->cfun = __patsfun_78__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_78__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1
-)
-{
-return __patsfun_78__closureinit(ATS_MALLOC(sizeof(__patsfun_78__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_79, (atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_type(atstype_ptrk) env0 ;
-} __patsfun_79__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_79__cfun
-(
-__patsfun_79__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_79(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_79__closureinit
-(
-__patsfun_79__closure_t0ype *p_cenv, atstkind_type(atstype_ptrk) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_79__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_79__closurerize
-(
-atstkind_type(atstype_ptrk) env0
-)
-{
-return __patsfun_79__closureinit(ATS_MALLOC(sizeof(__patsfun_79__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_80, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_80__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_80__cfun
-(
-__patsfun_80__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_80(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_80__closureinit
-(
-__patsfun_80__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_80__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_80__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_80__closureinit(ATS_MALLOC(sizeof(__patsfun_80__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_81, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_81__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_81__cfun
-(
-__patsfun_81__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_81(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_81__closureinit
-(
-__patsfun_81__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_81__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_81__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_81__closureinit(ATS_MALLOC(sizeof(__patsfun_81__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_82, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_82__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_82__cfun
-(
-__patsfun_82__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_82(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_82__closureinit
-(
-__patsfun_82__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_82__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_82__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_82__closureinit(ATS_MALLOC(sizeof(__patsfun_82__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_83, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_83__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_83__cfun
-(
-__patsfun_83__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_83(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_83__closureinit
-(
-__patsfun_83__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_83__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_83__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_83__closureinit(ATS_MALLOC(sizeof(__patsfun_83__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_85, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_t0ype(atstype_int) env1 ;
-atstkind_type(atstype_ptrk) env2 ;
-} __patsfun_85__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_85__cfun
-(
-__patsfun_85__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_85(p_cenv->env0, p_cenv->env1, p_cenv->env2, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_85__closureinit
-(
-__patsfun_85__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->env2 = env2 ;
-p_cenv->cfun = __patsfun_85__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_85__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
-)
-{
-return __patsfun_85__closureinit(ATS_MALLOC(sizeof(__patsfun_85__closure_t0ype)), env0, env1, env2) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_86, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_t0ype(atstype_int) env1 ;
-atstkind_type(atstype_ptrk) env2 ;
-} __patsfun_86__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_86__cfun
-(
-__patsfun_86__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_86(p_cenv->env0, p_cenv->env1, p_cenv->env2, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_86__closureinit
-(
-__patsfun_86__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->env2 = env2 ;
-p_cenv->cfun = __patsfun_86__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_86__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
-)
-{
-return __patsfun_86__closureinit(ATS_MALLOC(sizeof(__patsfun_86__closure_t0ype)), env0, env1, env2) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_134, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_134__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_134__cfun
-(
-__patsfun_134__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_134(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_134__closureinit
-(
-__patsfun_134__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_134__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_134__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_134__closureinit(ATS_MALLOC(sizeof(__patsfun_134__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_135, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_135__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_135__cfun
-(
-__patsfun_135__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_135(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_135__closureinit
-(
-__patsfun_135__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_135__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_135__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_135__closureinit(ATS_MALLOC(sizeof(__patsfun_135__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_136, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_136__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_136__cfun
-(
-__patsfun_136__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_136(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_136__closureinit
-(
-__patsfun_136__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_136__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_136__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_136__closureinit(ATS_MALLOC(sizeof(__patsfun_136__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_139, (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_139__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_139__cfun
-(
-__patsfun_139__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_139(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_139__closureinit
-(
-__patsfun_139__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_139__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_139__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-return __patsfun_139__closureinit(ATS_MALLOC(sizeof(__patsfun_139__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_140, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_140__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_140__cfun
-(
-__patsfun_140__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_140(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_140__closureinit
-(
-__patsfun_140__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_140__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_140__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_140__closureinit(ATS_MALLOC(sizeof(__patsfun_140__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_141, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_141__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_141__cfun
-(
-__patsfun_141__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_141(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_141__closureinit
-(
-__patsfun_141__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_141__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_141__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_141__closureinit(ATS_MALLOC(sizeof(__patsfun_141__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_156, (), (postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))), postiats_tyrec_0)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_156__closure_t0ype ;
-ATSstatic()
-postiats_tyrec_0
-__patsfun_156__cfun
-(
-__patsfun_156__closure_t0ype *p_cenv, postiats_tyrec_0 arg0, atsrefarg1_type(atstkind_t0ype(atstype_int)) arg1
-)
-{
-ATSFCreturn(__patsfun_156(arg0, arg1)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_156__closureinit
-(
-__patsfun_156__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_156__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_156__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_156__closureinit(ATS_MALLOC(sizeof(__patsfun_156__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 390(line=11, offs=4) -- 592(line=19, offs=6)
-*/
-/*
-local: 
-global: fib_gmp_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref4, atstkind_t0ype(atstype_uint)) ;
-ATStmpdec(tmp5, atstkind_t0ype(atstype_int)) ;
-// ATStmpdec_void(tmp6) ;
-// ATStmpdec_void(tmp7) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 390(line=11, offs=4) -- 592(line=19, offs=6)
-*/
-ATSINSflab(__patsflab_fib_gmp_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 426(line=12, offs=3) -- 592(line=19, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 438(line=13, offs=9) -- 439(line=13, offs=10)
-*/
-/*
-ATSINStmpdec(tmpref1) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 442(line=13, offs=13) -- 453(line=13, offs=24)
-*/
-ATSINSmove(tmpref1, ATSLIB_056_prelude__ptr_alloc__1__1()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 462(line=14, offs=9) -- 463(line=14, offs=10)
-*/
-/*
-ATSINStmpdec(tmpref4) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 477(line=14, offs=24) -- 482(line=14, offs=29)
-*/
-ATSINSmove(tmp5, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 466(line=14, offs=13) -- 483(line=14, offs=30)
-*/
-ATSINSmove(tmpref4, atspre_g0int2uint_int_uint(tmp5)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 497(line=15, offs=14) -- 518(line=15, offs=35)
-*/
-ATSINSmove_void(tmp6, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 532(line=16, offs=14) -- 560(line=16, offs=42)
-*/
-ATSINSmove_void(tmp7, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)), tmpref4)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 570(line=18, offs=5) -- 585(line=18, offs=20)
-*/
-ATSINSmove(tmpret0, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 426(line=12, offs=3) -- 592(line=19, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [fib_gmp_0] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2EVar(5559))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 769(line=24, offs=5) -- 1208(line=45, offs=10)
-*/
-/*
-local: exp_5$0(level=0)
-global: exp_5$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret8, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref14, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref15, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp16, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp21, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref22, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp24, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 769(line=24, offs=5) -- 1208(line=45, offs=10)
-*/
-ATSINSflab(__patsflab_exp_5):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 819(line=25, offs=3) -- 1208(line=45, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 836(line=26, offs=7) -- 837(line=26, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 788(line=24, offs=24) -- 789(line=24, offs=25)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 837(line=26, offs=8) -- 837(line=26, offs=8)
-*/
-ATSINSlab(__atstmplab1):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 841(line=26, offs=12) -- 842(line=26, offs=13)
-*/
-ATSINSmove(tmpret8, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 850(line=27, offs=8) -- 850(line=27, offs=8)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 879(line=29, offs=12) -- 884(line=29, offs=17)
-*/
-ATSINSmove(tmp9, ATSLIB_056_prelude__gt_g1int_int__6__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 876(line=29, offs=9) -- 1198(line=44, offs=12)
-*/
-ATSif(
-tmp9
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 900(line=30, offs=11) -- 1173(line=42, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 920(line=31, offs=17) -- 922(line=31, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref14) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 925(line=31, offs=22) -- 931(line=31, offs=28)
-*/
-ATSINSmove(tmpref14, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 949(line=32, offs=17) -- 951(line=32, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref15) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 954(line=32, offs=22) -- 959(line=32, offs=27)
-*/
-ATSINSmove(tmpref15, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 988(line=34, offs=16) -- 994(line=34, offs=22)
-*/
-ATSINSmove(tmp16, ATSLIB_056_prelude__eq_g0int_int__12__1(tmpref15, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 985(line=34, offs=13) -- 1159(line=41, offs=18)
-*/
-ATSif(
-tmp16
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1018(line=35, offs=19) -- 1023(line=35, offs=24)
-*/
-ATSINSmove(tmp21, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1014(line=35, offs=15) -- 1028(line=35, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp21) ;
-ATSINSmove_tlcal(apy1, tmpref14) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_5) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1060(line=37, offs=15) -- 1159(line=41, offs=18)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1084(line=38, offs=21) -- 1085(line=38, offs=22)
-*/
-/*
-ATSINStmpdec(tmpref22) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1096(line=38, offs=33) -- 1101(line=38, offs=38)
-*/
-ATSINSmove(tmp24, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1092(line=38, offs=29) -- 1106(line=38, offs=43)
-*/
-ATSINSmove(tmp23, exp_5(tmp24, tmpref14)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1088(line=38, offs=25) -- 1106(line=38, offs=43)
-*/
-ATSINSmove(tmpref22, atspre_g0int_mul_int(arg0, tmp23)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1140(line=40, offs=17) -- 1141(line=40, offs=18)
-*/
-ATSINSmove(tmpret8, tmpref22) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1060(line=37, offs=15) -- 1159(line=41, offs=18)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 900(line=30, offs=11) -- 1173(line=42, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1197(line=44, offs=11) -- 1198(line=44, offs=12)
-*/
-ATSINSmove(tmpret8, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret8) ;
-} /* end of [exp_5] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4633))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10, PMVtmpltcst(g1int_gt<S2Evar(tk(4633))>)(arg0, tmp11)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__1, atspre_g1int_gt_int(arg0, tmp11__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4624))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17, PMVtmpltcst(g0int_eq<S2Evar(tk(4624))>)(arg0, tmp18)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__1, atspre_g0int_eq_int(arg0, tmp18__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1246(line=48, offs=5) -- 1854(line=74, offs=39)
-*/
-/*
-local: big_exp_17$0(level=0)
-global: big_exp_17$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-big_exp_17(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret25, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp26, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp50, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref53, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref54, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp55, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref58, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref78, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref84, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref85, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp90) ;
-// ATStmpdec_void(tmp93) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1246(line=48, offs=5) -- 1854(line=74, offs=39)
-*/
-ATSINSflab(__patsflab_big_exp_17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1309(line=49, offs=6) -- 1333(line=49, offs=30)
-*/
-ATSINSmove(tmp31, ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(ATSPMVrefarg0(arg0), ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1309(line=49, offs=6) -- 1337(line=49, offs=34)
-*/
-ATSINSmove(tmp26, ATSLIB_056_prelude__eq_g1int_int__18__1(tmp31, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1306(line=49, offs=3) -- 1854(line=74, offs=39)
-*/
-ATSif(
-tmp26
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1347(line=50, offs=5) -- 1348(line=50, offs=6)
-*/
-ATSINSmove(tmpret25, arg0) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1363(line=52, offs=8) -- 1368(line=52, offs=13)
-*/
-ATSINSmove(tmp50, ATSLIB_056_prelude__gt_g1int_int__6__2(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1360(line=52, offs=5) -- 1854(line=74, offs=39)
-*/
-ATSif(
-tmp50
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1380(line=53, offs=7) -- 1806(line=72, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1396(line=54, offs=13) -- 1398(line=54, offs=15)
-*/
-/*
-ATSINStmpdec(tmpref53) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1401(line=54, offs=18) -- 1407(line=54, offs=24)
-*/
-ATSINSmove(tmpref53, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1421(line=55, offs=13) -- 1423(line=55, offs=15)
-*/
-/*
-ATSINStmpdec(tmpref54) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1426(line=55, offs=18) -- 1431(line=55, offs=23)
-*/
-ATSINSmove(tmpref54, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1452(line=57, offs=12) -- 1458(line=57, offs=18)
-*/
-ATSINSmove(tmp55, ATSLIB_056_prelude__eq_g0int_int__12__2(tmpref54, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1449(line=57, offs=9) -- 1796(line=71, offs=14)
-*/
-ATSif(
-tmp55
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1474(line=58, offs=11) -- 1569(line=62, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1494(line=59, offs=17) -- 1495(line=59, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref58) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1498(line=59, offs=21) -- 1514(line=59, offs=37)
-*/
-ATSINSmove(tmpref58, ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1541(line=61, offs=13) -- 1555(line=61, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmpref58) ;
-ATSINSmove_tlcal(apy1, tmpref53) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_big_exp_17) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1474(line=58, offs=11) -- 1569(line=62, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1593(line=64, offs=11) -- 1796(line=71, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1613(line=65, offs=17) -- 1615(line=65, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref78) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1618(line=65, offs=22) -- 1634(line=65, offs=38)
-*/
-ATSINSmove(tmpref78, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1652(line=66, offs=17) -- 1654(line=66, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref84) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1657(line=66, offs=22) -- 1672(line=66, offs=37)
-*/
-ATSINSmove(tmpref84, big_exp_17(tmpref78, tmpref53)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1689(line=67, offs=17) -- 1690(line=67, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref85) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1693(line=67, offs=21) -- 1719(line=67, offs=47)
-*/
-ATSINSmove(tmpref85, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(tmpref84, ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1741(line=68, offs=22) -- 1754(line=68, offs=35)
-*/
-ATSINSmove_void(tmp90, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1781(line=70, offs=13) -- 1782(line=70, offs=14)
-*/
-ATSINSmove(tmpret25, tmpref85) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1593(line=64, offs=11) -- 1796(line=71, offs=14)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1380(line=53, offs=7) -- 1806(line=72, offs=10)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1823(line=74, offs=8) -- 1836(line=74, offs=21)
-*/
-ATSINSmove_void(tmp93, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1840(line=74, offs=25) -- 1853(line=74, offs=38)
-*/
-ATSINSmove(tmpret25, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(ATSPMVi0nt(1))) ;
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret25) ;
-} /* end of [big_exp_17] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4639))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27, PMVtmpltcst(g1int_eq<S2Evar(tk(4639))>)(arg0, tmp28)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27__1, atspre_g1int_eq_int(arg0, tmp28__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
-*/
-/*
-local: 
-global: compare_intinf_int$21$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret32, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp34, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp35, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp36, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
-*/
-ATSINSmove(tmp33, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
-*/
-ATSINSmove(tmp35, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp33, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
-*/
-ATSif(
-tmp35
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
-*/
-ATSINSmove(tmp34, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
-*/
-ATSINSmove(tmp36, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp33, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
-*/
-ATSif(
-tmp36
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
-*/
-ATSINSmove(tmp34, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
-*/
-ATSINSmove(tmp34, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} /* ATSendif */
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
-*/
-ATSINSmove(tmpret32, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp34)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret32) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
-*/
-/*
-local: 
-global: compare_intinf_int$21$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret32__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp35__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp36__1, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
-*/
-ATSINSmove(tmp33__1, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
-*/
-ATSINSmove(tmp35__1, ATSLIB_056_prelude__lt_g0int_int__23__1(tmp33__1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
-*/
-ATSif(
-tmp35__1
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
-*/
-ATSINSmove(tmp34__1, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
-*/
-ATSINSmove(tmp36__1, ATSLIB_056_prelude__gt_g0int_int__27__1(tmp33__1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
-*/
-ATSif(
-tmp36__1
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
-*/
-ATSINSmove(tmp34__1, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
-*/
-ATSINSmove(tmp34__1, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} /* ATSendif */
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
-*/
-ATSINSmove(tmpret32__1, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp34__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret32__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
-*/
-/*
-local: 
-global: lt_g0int_int$23$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4620)
-tmparg = S2Evar(tk(4620))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp43, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
-*/
-ATSINSmove(tmp43, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4620))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
-*/
-ATSINSmove(tmpret42, PMVtmpltcst(g0int_lt<S2Evar(tk(4620))>)(arg0, tmp43)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret42) ;
-} /* end of [ATSLIB_056_prelude__lt_g0int_int__23] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
-*/
-/*
-local: 
-global: lt_g0int_int$23$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4620)
-tmparg = S2Evar(tk(4620))
-tmpsub = Some(tk(4620) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret42__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp43__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
-*/
-ATSINSmove(tmp43__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
-*/
-ATSINSmove(tmpret42__1, atspre_g0int_lt_int(arg0, tmp43__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret42__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g0int_int__23__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
-*/
-/*
-local: 
-global: gt_g0int_int$27$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4622)
-tmparg = S2Evar(tk(4622))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret46, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp47, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
-*/
-ATSINSmove(tmp47, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4622))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
-*/
-ATSINSmove(tmpret46, PMVtmpltcst(g0int_gt<S2Evar(tk(4622))>)(arg0, tmp47)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret46) ;
-} /* end of [ATSLIB_056_prelude__gt_g0int_int__27] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
-*/
-/*
-local: 
-global: gt_g0int_int$27$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4622)
-tmparg = S2Evar(tk(4622))
-tmpsub = Some(tk(4622) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret46__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp47__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
-*/
-ATSINSmove(tmp47__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
-*/
-ATSINSmove(tmpret46__1, atspre_g0int_gt_int(arg0, tmp47__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret46__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g0int_int__27__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__2, atspre_g1int_gt_int(arg0, tmp11__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__2, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__2, atspre_g0int_eq_int(arg0, tmp18__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
-*/
-/*
-local: 
-global: square_intinf0$32$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp60, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp61) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
-*/
-ATSINSmove(tmp60, PMVtmpltcst(square_intinf1<>)(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
-*/
-ATSINSmove_void(tmp61, PMVtmpltcst(intinf_free<>)(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
-*/
-ATSINSmove(tmpret59, tmp60) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret59) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
-*/
-/*
-local: 
-global: square_intinf0$32$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp60__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp61__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
-*/
-ATSINSmove(tmp60__1, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
-*/
-ATSINSmove_void(tmp61__1, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
-*/
-ATSINSmove(tmpret59__1, tmp60__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret59__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67) ;
-// ATStmpdec_void(tmp68) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65, tmp66) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67__1) ;
-// ATStmpdec_void(tmp68__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66__1, ATSLIB_056_prelude__ptr_alloc__1__2()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67__1, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68__1, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65__1, tmp66__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$2(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74) ;
-// ATStmpdec_void(tmp75) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__1) ;
-// ATStmpdec_void(tmp75__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__1, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65__2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67__2) ;
-// ATStmpdec_void(tmp68__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66__2, ATSLIB_056_prelude__ptr_alloc__1__3()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67__2, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68__2, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65__2, tmp66__2) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__3()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__3, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__3) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__3] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$41$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp87) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp87, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret86, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$41$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp87__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp87__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret86__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret86__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__2) ;
-// ATStmpdec_void(tmp75__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__2, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__3) ;
-// ATStmpdec_void(tmp75__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__3, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$45$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret96, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp97, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp98) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp97, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp98, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp97, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret96, tmp97) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret96) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$45$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret96__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp97__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp98__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp97__1, ATSLIB_056_prelude__ptr_alloc__1__4()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp98__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp97__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret96__1, tmp97__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret96__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__4()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__4, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__4) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1900(line=77, offs=4) -- 2047(line=82, offs=6)
-*/
-/*
-local: 
-global: sqrt_int_48$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_48(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret103, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref104, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp105, atstkind_t0ype(atstype_double)) ;
-ATStmpdec(tmp106, atstkind_t0ype(atstype_double)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1900(line=77, offs=4) -- 2047(line=82, offs=6)
-*/
-ATSINSflab(__patsflab_sqrt_int_48):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1946(line=78, offs=3) -- 2047(line=82, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1958(line=79, offs=9) -- 1963(line=79, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref104) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1990(line=79, offs=41) -- 2014(line=79, offs=65)
-*/
-ATSINSmove(tmp106, atspre_g0int2float_int_double(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1978(line=79, offs=29) -- 2016(line=79, offs=67)
-*/
-ATSINSmove(tmp105, atslib_libats_libc_sqrt_double(tmp106)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1966(line=79, offs=17) -- 2017(line=79, offs=68)
-*/
-ATSINSmove(tmpref104, atspre_g0float2int_double_int(tmp105)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2027(line=81, offs=5) -- 2040(line=81, offs=18)
-*/
-ATSINSmove(tmpret103, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmpref104)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1946(line=78, offs=3) -- 2047(line=82, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret103) ;
-} /* end of [sqrt_int_48] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2083(line=85, offs=4) -- 2664(line=108, offs=10)
-*/
-/*
-local: sqrt_int_48$0(level=0)
-global: sqrt_int_48$0(level=0), is_prime_50$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_50(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret107, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp126, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2083(line=85, offs=4) -- 2664(line=108, offs=10)
-*/
-ATSINSflab(__patsflab_is_prime_50):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2119(line=86, offs=3) -- 2664(line=108, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2136(line=87, offs=7) -- 2137(line=87, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2092(line=85, offs=13) -- 2093(line=85, offs=14)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2137(line=87, offs=8) -- 2137(line=87, offs=8)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2141(line=87, offs=12) -- 2146(line=87, offs=17)
-*/
-ATSINSmove(tmpret107, ATSPMVbool_false()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2154(line=88, offs=8) -- 2154(line=88, offs=8)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2179(line=90, offs=9) -- 2654(line=107, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2630(line=106, offs=19) -- 2640(line=106, offs=29)
-*/
-ATSINSmove(tmp126, sqrt_int_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2622(line=106, offs=11) -- 2642(line=106, offs=31)
-*/
-ATSINSmove(tmpret107, loop_51(arg0, ATSPMVi0nt(2), tmp126)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2179(line=90, offs=9) -- 2654(line=107, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret107) ;
-} /* end of [is_prime_50] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2197(line=91, offs=15) -- 2600(line=104, offs=21)
-*/
-/*
-local: loop_51$0(level=1)
-global: loop_51$0(level=1)
-local: k$5098(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$5098(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_51(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(tmpret108, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp109, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp117, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp118, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp119, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp122, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2197(line=91, offs=15) -- 2600(line=104, offs=21)
-*/
-ATSINSflab(__patsflab_loop_51):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2287(line=92, offs=16) -- 2296(line=92, offs=25)
-*/
-ATSINSmove(tmp109, ATSLIB_056_prelude__lt_g1int_int__52__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2284(line=92, offs=13) -- 2600(line=104, offs=21)
-*/
-ATSif(
-tmp109
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2319(line=93, offs=18) -- 2324(line=93, offs=23)
-*/
-ATSINSmove(tmp117, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2319(line=93, offs=18) -- 2328(line=93, offs=27)
-*/
-ATSINSmove(tmp114, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp117, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2316(line=93, offs=15) -- 2409(line=96, offs=35)
-*/
-ATSif(
-tmp114
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2350(line=94, offs=17) -- 2355(line=94, offs=22)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2396(line=96, offs=22) -- 2401(line=96, offs=27)
-*/
-ATSINSmove(tmp118, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2391(line=96, offs=17) -- 2409(line=96, offs=35)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp118) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_51) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2444(line=98, offs=18) -- 2453(line=98, offs=27)
-*/
-ATSINSmove(tmp119, ATSLIB_056_prelude__eq_g1int_int__18__2(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2441(line=98, offs=15) -- 2600(line=104, offs=21)
-*/
-ATSif(
-tmp119
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2478(line=99, offs=20) -- 2483(line=99, offs=25)
-*/
-ATSINSmove(tmp125, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2478(line=99, offs=20) -- 2487(line=99, offs=29)
-*/
-ATSINSmove(tmp122, ATSLIB_056_prelude__eq_g0int_int__12__4(tmp125, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2475(line=99, offs=17) -- 2560(line=102, offs=23)
-*/
-ATSif(
-tmp122
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2511(line=100, offs=19) -- 2516(line=100, offs=24)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2556(line=102, offs=19) -- 2560(line=102, offs=23)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_true()) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2596(line=104, offs=17) -- 2600(line=104, offs=21)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_true()) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret108) ;
-} /* end of [loop_51] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4627))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110, PMVtmpltcst(g1int_lt<S2Evar(tk(4627))>)(arg0, tmp111)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = Some(tk(4627) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110__1, atspre_g1int_lt_int(arg0, tmp111__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__3, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__3, atspre_g0int_eq_int(arg0, tmp18__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__3] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27__2, atspre_g1int_eq_int(arg0, tmp28__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__4, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__4, atspre_g0int_eq_int(arg0, tmp18__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__4) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 451(line=14, offs=19) -- 471(line=15, offs=12)
-*/
-/*
-local: 
-global: divides$58$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret127, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp130, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 443(line=14, offs=11) -- 471(line=15, offs=12)
-*/
-ATSINSflab(__patsflab_divides):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 462(line=15, offs=3) -- 467(line=15, offs=8)
-*/
-ATSINSmove(tmp130, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 462(line=15, offs=3) -- 471(line=15, offs=12)
-*/
-ATSINSmove(tmpret127, ATSLIB_056_prelude__eq_g0int_int__12__5(tmp130, ATSPMVi0nt(0))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret127) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$5(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__5, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__5, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__5, atspre_g0int_eq_int(arg0, tmp18__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__5) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 487(line=17, offs=15) -- 551(line=21, offs=6)
-*/
-/*
-local: 
-global: gcd$60$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(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(tmpret131, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp132, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp135, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 483(line=17, offs=11) -- 551(line=21, offs=6)
-*/
-ATSINSflab(__patsflab_gcd):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 501(line=18, offs=6) -- 506(line=18, offs=11)
-*/
-ATSINSmove(tmp132, ATSLIB_056_prelude__gt_g1int_int__6__3(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 498(line=18, offs=3) -- 551(line=21, offs=6)
-*/
-ATSif(
-tmp132
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 531(line=19, offs=20) -- 536(line=19, offs=25)
-*/
-ATSINSmove(tmp135, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 516(line=19, offs=5) -- 538(line=19, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg1) ;
-ATSINSmove_tlcal(apy1, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp135)) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_gcd) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 550(line=21, offs=5) -- 551(line=21, offs=6)
-*/
-ATSINSmove(tmpret131, arg0) ;
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret131) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__3, atspre_g1int_gt_int(arg0, tmp11__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__3) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 567(line=23, offs=15) -- 597(line=24, offs=22)
-*/
-/*
-local: 
-global: lcm$62$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret136, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp137, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp138, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 563(line=23, offs=11) -- 597(line=24, offs=22)
-*/
-ATSINSflab(__patsflab_lcm):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 583(line=24, offs=8) -- 592(line=24, offs=17)
-*/
-ATSINSmove(tmp138, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 579(line=24, offs=4) -- 592(line=24, offs=17)
-*/
-ATSINSmove(tmp137, atspre_g0int_div_int(arg0, tmp138)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 578(line=24, offs=3) -- 597(line=24, offs=22)
-*/
-ATSINSmove(tmpret136, atspre_g0int_mul_int(tmp137, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret136) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 617(line=26, offs=19) -- 641(line=27, offs=16)
-*/
-/*
-local: 
-global: coprime$64$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret139, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 609(line=26, offs=11) -- 641(line=27, offs=16)
-*/
-ATSINSflab(__patsflab_coprime):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 628(line=27, offs=3) -- 637(line=27, offs=12)
-*/
-ATSINSmove(tmp142, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 628(line=27, offs=3) -- 641(line=27, offs=16)
-*/
-ATSINSmove(tmpret139, ATSLIB_056_prelude__eq_g0int_int__12__6(tmp142, ATSPMVi0nt(1))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret139) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$6(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__6, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__6, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__6, atspre_g0int_eq_int(arg0, tmp18__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__6) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__6] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 662(line=29, offs=20) -- 1641(line=61, offs=8)
-*/
-/*
-local: sqrt_int_48$0(level=0)
-global: sqrt_int_48$0(level=0), divisors$66$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret143, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 653(line=29, offs=11) -- 1641(line=61, offs=8)
-*/
-ATSINSflab(__patsflab_divisors):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 670(line=30, offs=3) -- 1641(line=61, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 687(line=31, offs=7) -- 688(line=31, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 663(line=29, offs=21) -- 664(line=29, offs=22)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 688(line=31, offs=8) -- 688(line=31, offs=8)
-*/
-ATSINSlab(__atstmplab7):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 692(line=31, offs=12) -- 742(line=31, offs=62)
-*/
-ATSINSmove_ldelay(tmpret143, atstype_boxed, ATSPMVcfunlab(1, __patsfun_67, ())) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 750(line=32, offs=8) -- 750(line=32, offs=8)
-*/
-ATSINSlab(__atstmplab8):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 754(line=32, offs=12) -- 1641(line=61, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1623(line=60, offs=7) -- 1633(line=60, offs=17)
-*/
-ATSINSmove(tmpret143, loop_69(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 754(line=32, offs=12) -- 1641(line=61, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret143) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 692(line=31, offs=12) -- 742(line=31, offs=62)
-*/
-/*
-local: 
-global: __patsfun_67$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_67(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret144, atstype_boxed) ;
-ATStmpdec(tmp145, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 692(line=31, offs=12) -- 742(line=31, offs=62)
-*/
-ATSINSflab(__patsflab___patsfun_67):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 692(line=31, offs=12) -- 742(line=31, offs=62)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 718(line=31, offs=38) -- 740(line=31, offs=60)
-*/
-ATSINSmove_ldelay(tmp145, atstype_boxed, ATSPMVcfunlab(1, __patsfun_68, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 700(line=31, offs=20) -- 741(line=31, offs=61)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret144, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret144, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret144, postiats_tysum_1, atslab__0, ATSPMVi0nt(1)) ;
-ATSINSstore_con1_ofs(tmpret144, postiats_tysum_1, atslab__1, tmp145) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret144) ;
-} /* end of [__patsfun_67] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 718(line=31, offs=38) -- 740(line=31, offs=60)
-*/
-/*
-local: 
-global: __patsfun_68$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_68(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret146, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 718(line=31, offs=38) -- 740(line=31, offs=60)
-*/
-ATSINSflab(__patsflab___patsfun_68):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 718(line=31, offs=38) -- 740(line=31, offs=60)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 726(line=31, offs=46) -- 739(line=31, offs=59)
-*/
-
-ATSINSmove_nil(tmpret146) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret146) ;
-} /* end of [__patsfun_68] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 768(line=33, offs=11) -- 1609(line=58, offs=29)
-*/
-/*
-local: sqrt_int_48$0(level=0), loop_69$0(level=1)
-global: sqrt_int_48$0(level=0), loop_69$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_69(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(tmpret147, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp148, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp153, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp154, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp157, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp158, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp163, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref164, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp174, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp177, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref178, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp184, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 768(line=33, offs=11) -- 1609(line=58, offs=29)
-*/
-ATSINSflab(__patsflab_loop_69):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 875(line=34, offs=19) -- 885(line=34, offs=29)
-*/
-ATSINSmove(tmp153, sqrt_int_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 868(line=34, offs=12) -- 885(line=34, offs=29)
-*/
-ATSINSmove(tmp148, ATSLIB_056_prelude__gte_g1int_int__70__1(arg1, tmp153)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 865(line=34, offs=9) -- 1609(line=58, offs=29)
-*/
-ATSif(
-tmp148
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 905(line=35, offs=14) -- 912(line=35, offs=21)
-*/
-ATSINSmove(tmp157, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 905(line=35, offs=14) -- 916(line=35, offs=25)
-*/
-ATSINSmove(tmp154, ATSLIB_056_prelude__eq_g0int_int__12__7(tmp157, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 902(line=35, offs=11) -- 1349(line=49, offs=35)
-*/
-ATSif(
-tmp154
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 937(line=36, offs=16) -- 944(line=36, offs=23)
-*/
-ATSINSmove(tmp163, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 937(line=36, offs=16) -- 951(line=36, offs=30)
-*/
-ATSINSmove(tmp158, ATSLIB_056_prelude__neq_g1int_int__74__1(tmp163, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 934(line=36, offs=13) -- 1299(line=47, offs=18)
-*/
-ATSif(
-tmp158
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 971(line=37, offs=15) -- 1143(line=41, offs=18)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 995(line=38, offs=21) -- 996(line=38, offs=22)
-*/
-/*
-ATSINStmpdec(tmpref164) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1004(line=38, offs=30) -- 1011(line=38, offs=37)
-*/
-ATSINSmove(tmpref164, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1045(line=40, offs=17) -- 1125(line=40, offs=97)
-*/
-ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_78, (arg1, ATSPMVptrof(tmpref164)))) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 971(line=37, offs=15) -- 1143(line=41, offs=18)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1229(line=46, offs=17) -- 1281(line=46, offs=69)
-*/
-ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_81, (arg1))) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1327(line=49, offs=13) -- 1349(line=49, offs=35)
-*/
-ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_83, ())) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1376(line=51, offs=14) -- 1383(line=51, offs=21)
-*/
-ATSINSmove(tmp177, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1376(line=51, offs=14) -- 1387(line=51, offs=25)
-*/
-ATSINSmove(tmp174, ATSLIB_056_prelude__eq_g0int_int__12__8(tmp177, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1373(line=51, offs=11) -- 1609(line=58, offs=29)
-*/
-ATSif(
-tmp174
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1405(line=52, offs=13) -- 1565(line=56, offs=16)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1427(line=53, offs=19) -- 1428(line=53, offs=20)
-*/
-/*
-ATSINStmpdec(tmpref178) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1436(line=53, offs=28) -- 1443(line=53, offs=35)
-*/
-ATSINSmove(tmpref178, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1473(line=55, offs=15) -- 1549(line=55, offs=91)
-*/
-ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_85, (arg0, arg1, ATSPMVptrof(tmpref178)))) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1405(line=52, offs=13) -- 1565(line=56, offs=16)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1601(line=58, offs=21) -- 1608(line=58, offs=28)
-*/
-ATSINSmove(tmp184, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1593(line=58, offs=13) -- 1609(line=58, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp184) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_69) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret147) ;
-} /* end of [loop_69] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$70$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4636)
-tmparg = S2Evar(tk(4636))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp150, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp150, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4636))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret149, PMVtmpltcst(g1int_gte<S2Evar(tk(4636))>)(arg0, tmp150)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret149) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__70] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$70$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4636)
-tmparg = S2Evar(tk(4636))
-tmpsub = Some(tk(4636) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp150__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp150__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret149__1, atspre_g1int_gte_int(arg0, tmp150__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret149__1) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__70__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$7(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__7, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__7, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__7, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__7, atspre_g0int_eq_int(arg0, tmp18__7)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__7) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__7] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$74$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4642)
-tmparg = S2Evar(tk(4642))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret159, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp160, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp160, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4642))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret159, PMVtmpltcst(g1int_neq<S2Evar(tk(4642))>)(arg0, tmp160)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret159) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__74] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$74$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4642)
-tmparg = S2Evar(tk(4642))
-tmpsub = Some(tk(4642) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret159__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp160__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp160__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret159__1, atspre_g1int_neq_int(arg0, tmp160__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret159__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__74__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1045(line=40, offs=17) -- 1125(line=40, offs=97)
-*/
-/*
-local: 
-global: __patsfun_78$0(level=2)
-local: acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5114(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-global: acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5114(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_78(atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret165, atstype_boxed) ;
-ATStmpdec(tmp166, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1045(line=40, offs=17) -- 1125(line=40, offs=97)
-*/
-ATSINSflab(__patsflab___patsfun_78):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1045(line=40, offs=17) -- 1125(line=40, offs=97)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1073(line=40, offs=45) -- 1123(line=40, offs=95)
-*/
-ATSINSmove_ldelay(tmp166, atstype_boxed, ATSPMVcfunlab(1, __patsfun_79, (env1))) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1053(line=40, offs=25) -- 1124(line=40, offs=96)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret165, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret165, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret165, postiats_tysum_1, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret165, postiats_tysum_1, atslab__1, tmp166) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret165) ;
-} /* end of [__patsfun_78] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1073(line=40, offs=45) -- 1123(line=40, offs=95)
-*/
-/*
-local: 
-global: __patsfun_79$0(level=3)
-local: x$5114(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-global: x$5114(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_79(atstkind_type(atstype_ptrk) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret167, atstype_boxed) ;
-ATStmpdec(tmp168, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1073(line=40, offs=45) -- 1123(line=40, offs=95)
-*/
-ATSINSflab(__patsflab___patsfun_79):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1073(line=40, offs=45) -- 1123(line=40, offs=95)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1099(line=40, offs=71) -- 1121(line=40, offs=93)
-*/
-ATSINSmove_ldelay(tmp168, atstype_boxed, ATSPMVcfunlab(1, __patsfun_80, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1081(line=40, offs=53) -- 1122(line=40, offs=94)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret167, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret167, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret167, postiats_tysum_1, atslab__0, ATSderef(env0, atstkind_t0ype(atstype_int))) ;
-ATSINSstore_con1_ofs(tmpret167, postiats_tysum_1, atslab__1, tmp168) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret167) ;
-} /* end of [__patsfun_79] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1099(line=40, offs=71) -- 1121(line=40, offs=93)
-*/
-/*
-local: 
-global: __patsfun_80$0(level=4)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_80(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret169, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1099(line=40, offs=71) -- 1121(line=40, offs=93)
-*/
-ATSINSflab(__patsflab___patsfun_80):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1099(line=40, offs=71) -- 1121(line=40, offs=93)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1107(line=40, offs=79) -- 1120(line=40, offs=92)
-*/
-
-ATSINSmove_nil(tmpret169) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret169) ;
-} /* end of [__patsfun_80] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1229(line=46, offs=17) -- 1281(line=46, offs=69)
-*/
-/*
-local: 
-global: __patsfun_81$0(level=2)
-local: acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_81(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret170, atstype_boxed) ;
-ATStmpdec(tmp171, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1229(line=46, offs=17) -- 1281(line=46, offs=69)
-*/
-ATSINSflab(__patsflab___patsfun_81):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1229(line=46, offs=17) -- 1281(line=46, offs=69)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1257(line=46, offs=45) -- 1279(line=46, offs=67)
-*/
-ATSINSmove_ldelay(tmp171, atstype_boxed, ATSPMVcfunlab(1, __patsfun_82, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1237(line=46, offs=25) -- 1280(line=46, offs=68)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret170, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret170, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret170, postiats_tysum_1, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret170, postiats_tysum_1, atslab__1, tmp171) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret170) ;
-} /* end of [__patsfun_81] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1257(line=46, offs=45) -- 1279(line=46, offs=67)
-*/
-/*
-local: 
-global: __patsfun_82$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_82(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret172, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1257(line=46, offs=45) -- 1279(line=46, offs=67)
-*/
-ATSINSflab(__patsflab___patsfun_82):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1257(line=46, offs=45) -- 1279(line=46, offs=67)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1265(line=46, offs=53) -- 1278(line=46, offs=66)
-*/
-
-ATSINSmove_nil(tmpret172) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret172) ;
-} /* end of [__patsfun_82] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1327(line=49, offs=13) -- 1349(line=49, offs=35)
-*/
-/*
-local: 
-global: __patsfun_83$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_83(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret173, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1327(line=49, offs=13) -- 1349(line=49, offs=35)
-*/
-ATSINSflab(__patsflab___patsfun_83):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1327(line=49, offs=13) -- 1349(line=49, offs=35)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1335(line=49, offs=21) -- 1348(line=49, offs=34)
-*/
-
-ATSINSmove_nil(tmpret173) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret173) ;
-} /* end of [__patsfun_83] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$8(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__8, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__8, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__8, atspre_g0int_eq_int(arg0, tmp18__8)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__8) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__8] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1473(line=55, offs=15) -- 1549(line=55, offs=91)
-*/
-/*
-local: loop_69$0(level=1)
-global: loop_69$0(level=1), __patsfun_85$0(level=2)
-local: n$5112(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5115(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-global: n$5112(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5115(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_85(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret179, atstype_boxed) ;
-ATStmpdec(tmp180, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1473(line=55, offs=15) -- 1549(line=55, offs=91)
-*/
-ATSINSflab(__patsflab___patsfun_85):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1473(line=55, offs=15) -- 1549(line=55, offs=91)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1501(line=55, offs=43) -- 1547(line=55, offs=89)
-*/
-ATSINSmove_ldelay(tmp180, atstype_boxed, ATSPMVcfunlab(1, __patsfun_86, (env0, env1, env2))) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1481(line=55, offs=23) -- 1548(line=55, offs=90)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret179, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret179, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret179, postiats_tysum_1, atslab__0, env1) ;
-ATSINSstore_con1_ofs(tmpret179, postiats_tysum_1, atslab__1, tmp180) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret179) ;
-} /* end of [__patsfun_85] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1501(line=55, offs=43) -- 1547(line=55, offs=89)
-*/
-/*
-local: loop_69$0(level=1)
-global: loop_69$0(level=1), __patsfun_86$0(level=3)
-local: n$5112(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5115(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-global: n$5112(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5113(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5115(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_86(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret181, atstype_boxed) ;
-ATStmpdec(tmp182, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp183, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1501(line=55, offs=43) -- 1547(line=55, offs=89)
-*/
-ATSINSflab(__patsflab___patsfun_86):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1501(line=55, offs=43) -- 1547(line=55, offs=89)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1536(line=55, offs=78) -- 1543(line=55, offs=85)
-*/
-ATSINSmove(tmp183, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1528(line=55, offs=70) -- 1544(line=55, offs=86)
-*/
-ATSINSmove(tmp182, loop_69(env0, tmp183)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1509(line=55, offs=51) -- 1546(line=55, offs=88)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret181, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret181, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret181, postiats_tysum_1, atslab__0, ATSderef(env2, atstkind_t0ype(atstype_int))) ;
-ATSINSstore_con1_ofs(tmpret181, postiats_tysum_1, atslab__1, tmp182) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret181) ;
-} /* end of [__patsfun_86] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1681(line=64, offs=4) -- 1753(line=65, offs=18)
-*/
-/*
-local: 
-global: div_gt_zero_87$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-div_gt_zero_87(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret185, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp186, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1681(line=64, offs=4) -- 1753(line=65, offs=18)
-*/
-ATSINSflab(__patsflab_div_gt_zero_87):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1747(line=65, offs=12) -- 1752(line=65, offs=17)
-*/
-ATSINSmove(tmp186, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1738(line=65, offs=3) -- 1753(line=65, offs=18)
-*/
-ATSINSmove(tmpret185, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp186)) ;
-ATSfunbody_end()
-ATSreturn(tmpret185) ;
-} /* end of [div_gt_zero_87] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1872(line=69, offs=5) -- 3800(line=132, offs=6)
-*/
-/*
-local: exp_5$0(level=0), is_prime_50$0(level=0), div_gt_zero_87$0(level=0)
-global: exp_5$0(level=0), sqrt_int_48$0(level=0), is_prime_50$0(level=0), div_gt_zero_87$0(level=0), jacobi_88$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-jacobi_88(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret187, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1872(line=69, offs=5) -- 3800(line=132, offs=6)
-*/
-ATSINSflab(__patsflab_jacobi_88):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1913(line=70, offs=3) -- 3800(line=132, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3787(line=131, offs=5) -- 3794(line=131, offs=12)
-*/
-ATSINSmove(tmpret187, loop_99(arg0, arg1, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1913(line=70, offs=3) -- 3800(line=132, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret187) ;
-} /* end of [jacobi_88] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1966(line=72, offs=9) -- 3294(line=112, offs=12)
-*/
-/*
-local: 
-global: legendre_89$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-legendre_89(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret188, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp189, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref208, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp209, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp210, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp211, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp212, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp215, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp216, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp217, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp220, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1966(line=72, offs=9) -- 3294(line=112, offs=12)
-*/
-ATSINSflab(__patsflab_legendre_89):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2054(line=73, offs=13) -- 2059(line=73, offs=18)
-*/
-ATSINSmove(tmp189, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2048(line=73, offs=7) -- 3294(line=112, offs=12)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2073(line=74, offs=11) -- 2074(line=74, offs=12)
-*/
-ATSINSlab(__atstmplab9):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2054(line=73, offs=13) -- 2059(line=73, offs=18)
-*/
-ATSifnthen(ATSCKpat_int(tmp189, ATSPMVint(0))) { ATSINSgoto(__atstmplab11) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2074(line=74, offs=12) -- 2074(line=74, offs=12)
-*/
-ATSINSlab(__atstmplab10):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2078(line=74, offs=16) -- 2079(line=74, offs=17)
-*/
-ATSINSmove(tmpret188, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2091(line=75, offs=12) -- 2091(line=75, offs=12)
-*/
-ATSINSlab(__atstmplab11):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2095(line=75, offs=16) -- 3294(line=112, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3114(line=106, offs=15) -- 3115(line=106, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref208) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3136(line=106, offs=37) -- 3141(line=106, offs=42)
-*/
-ATSINSmove(tmp210, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3135(line=106, offs=36) -- 3146(line=106, offs=47)
-*/
-ATSINSmove(tmp209, atspre_g1int_div_int(tmp210, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3118(line=106, offs=19) -- 3150(line=106, offs=51)
-*/
-ATSINSmove(tmpref208, exp_mod_prime_90(arg0, tmp209, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3178(line=108, offs=17) -- 3179(line=108, offs=18)
-*/
-ATSINSmove(tmp211, tmpref208) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3172(line=108, offs=11) -- 3282(line=111, offs=21)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3198(line=109, offs=16) -- 3198(line=109, offs=16)
-*/
-ATSINSlab(__atstmplab15):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3209(line=109, offs=27) -- 3214(line=109, offs=32)
-*/
-ATSINSmove(tmp216, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3204(line=109, offs=22) -- 3215(line=109, offs=33)
-*/
-ATSINSmove(tmp215, atspre_g0int_mod_int(tmp211, tmp216)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3204(line=109, offs=22) -- 3219(line=109, offs=37)
-*/
-ATSINSmove(tmp212, ATSLIB_056_prelude__eq_g0int_int__12__10(tmp215, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3204(line=109, offs=22) -- 3219(line=109, offs=37)
-*/
-ATSifnthen(ATSCKpat_bool(tmp212, ATSPMVbool_true())) { ATSINSgoto(__atstmplab16) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3223(line=109, offs=41) -- 3225(line=109, offs=43)
-*/
-ATSINSmove(tmpret188, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3241(line=110, offs=16) -- 3241(line=110, offs=16)
-*/
-ATSINSlab(__atstmplab16):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3247(line=110, offs=22) -- 3252(line=110, offs=27)
-*/
-ATSINSmove(tmp220, atspre_g0int_mod_int(tmp211, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3247(line=110, offs=22) -- 3256(line=110, offs=31)
-*/
-ATSINSmove(tmp217, ATSLIB_056_prelude__eq_g0int_int__12__11(tmp220, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3247(line=110, offs=22) -- 3256(line=110, offs=31)
-*/
-ATSifnthen(ATSCKpat_bool(tmp217, ATSPMVbool_true())) { ATSINSgoto(__atstmplab17) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3260(line=110, offs=35) -- 3261(line=110, offs=36)
-*/
-ATSINSmove(tmpret188, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3277(line=111, offs=16) -- 3277(line=111, offs=16)
-*/
-ATSINSlab(__atstmplab17):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3281(line=111, offs=20) -- 3282(line=111, offs=21)
-*/
-ATSINSmove(tmpret188, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2095(line=75, offs=16) -- 3294(line=112, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret188) ;
-} /* end of [legendre_89] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2155(line=77, offs=15) -- 3088(line=104, offs=16)
-*/
-/*
-local: exp_mod_prime_90$0(level=2)
-global: exp_mod_prime_90$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_mod_prime_90(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_t0ype(atstype_int) arg2)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy2, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret190, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref191, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref192, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp193, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp194, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref197, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp198, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref199, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref200, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp201, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp202, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp203, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref206, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp207, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2155(line=77, offs=15) -- 3088(line=104, offs=16)
-*/
-ATSINSflab(__patsflab_exp_mod_prime_90):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2233(line=78, offs=13) -- 3088(line=104, offs=16)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2255(line=79, offs=19) -- 2257(line=79, offs=21)
-*/
-/*
-ATSINStmpdec(tmpref191) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2260(line=79, offs=24) -- 2265(line=79, offs=29)
-*/
-ATSINSmove(tmpref191, atspre_g0int_mod_int(arg0, arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2284(line=80, offs=19) -- 2286(line=80, offs=21)
-*/
-/*
-ATSINStmpdec(tmpref192) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2294(line=80, offs=29) -- 2299(line=80, offs=34)
-*/
-ATSINSmove(tmp193, atspre_g1int_sub_int(arg2, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2289(line=80, offs=24) -- 2300(line=80, offs=35)
-*/
-ATSINSmove(tmpref192, atspre_g0int_mod_int(arg1, tmp193)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2330(line=82, offs=15) -- 3072(line=103, offs=22)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2359(line=83, offs=19) -- 2360(line=83, offs=20)
-*/
-ATSINSlab(__atstmplab12):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2169(line=77, offs=29) -- 2170(line=77, offs=30)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2360(line=83, offs=20) -- 2360(line=83, offs=20)
-*/
-ATSINSlab(__atstmplab13):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2364(line=83, offs=24) -- 2365(line=83, offs=25)
-*/
-ATSINSmove(tmpret190, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2385(line=84, offs=20) -- 2385(line=84, offs=20)
-*/
-ATSINSlab(__atstmplab14):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2438(line=86, offs=24) -- 2443(line=86, offs=29)
-*/
-ATSINSmove(tmp194, ATSLIB_056_prelude__gt_g1int_int__6__4(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2435(line=86, offs=21) -- 3050(line=102, offs=24)
-*/
-ATSif(
-tmp194
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2471(line=87, offs=23) -- 3001(line=100, offs=26)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2503(line=88, offs=29) -- 2505(line=88, offs=31)
-*/
-/*
-ATSINStmpdec(tmpref197) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2528(line=88, offs=54) -- 2535(line=88, offs=61)
-*/
-ATSINSmove(tmp198, atspre_g0int_half_int(tmpref192)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2519(line=88, offs=45) -- 2537(line=88, offs=63)
-*/
-ATSINSmove(tmpref197, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp198)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2566(line=89, offs=29) -- 2568(line=89, offs=31)
-*/
-/*
-ATSINStmpdec(tmpref199) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2571(line=89, offs=34) -- 2577(line=89, offs=40)
-*/
-ATSINSmove(tmpref199, atspre_g0int_mod_int(tmpref192, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2606(line=90, offs=29) -- 2610(line=90, offs=33)
-*/
-/*
-ATSINStmpdec(tmpref200) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2633(line=90, offs=56) -- 2638(line=90, offs=61)
-*/
-ATSINSmove(tmp202, atspre_g1int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2633(line=90, offs=56) -- 2642(line=90, offs=65)
-*/
-ATSINSmove(tmp201, atspre_g0int_mod_int(tmp202, arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2624(line=90, offs=47) -- 2643(line=90, offs=66)
-*/
-ATSINSmove(tmpref200, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp201)) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2696(line=92, offs=28) -- 2702(line=92, offs=34)
-*/
-ATSINSmove(tmp203, ATSLIB_056_prelude__eq_g0int_int__12__9(tmpref199, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2693(line=92, offs=25) -- 2975(line=99, offs=30)
-*/
-ATSif(
-tmp203
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2734(line=93, offs=27) -- 2760(line=93, offs=53)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmpref200) ;
-ATSINSmove_tlcal(apy1, tmpref197) ;
-ATSINSmove_tlcal(apy2, arg2) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSargmove_tlcal(arg2, apy2) ;
-ATSINSfgoto(__patsflab_exp_mod_prime_90) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2816(line=95, offs=27) -- 2975(line=99, offs=30)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2852(line=96, offs=33) -- 2853(line=96, offs=34)
-*/
-/*
-ATSINStmpdec(tmpref206) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2860(line=96, offs=41) -- 2886(line=96, offs=67)
-*/
-ATSINSmove(tmp207, exp_mod_prime_90(tmpref200, tmpref197, arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2856(line=96, offs=37) -- 2886(line=96, offs=67)
-*/
-ATSINSmove(tmpref206, atspre_g0int_mul_int(arg0, tmp207)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2944(line=98, offs=29) -- 2945(line=98, offs=30)
-*/
-ATSINSmove(tmpret190, tmpref206) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2816(line=95, offs=27) -- 2975(line=99, offs=30)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2471(line=87, offs=23) -- 3001(line=100, offs=26)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3049(line=102, offs=23) -- 3050(line=102, offs=24)
-*/
-ATSINSmove(tmpret190, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2233(line=78, offs=13) -- 3088(line=104, offs=16)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret190) ;
-} /* end of [exp_mod_prime_90] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$4(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__4, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__4, atspre_g1int_gt_int(arg0, tmp11__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__4) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__4] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$9(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__9, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__9, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__9, atspre_g0int_eq_int(arg0, tmp18__9)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__9] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$10(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__10, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__10, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__10, atspre_g0int_eq_int(arg0, tmp18__10)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__10] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$11(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__11(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__11, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__11, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__11, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__11, atspre_g0int_eq_int(arg0, tmp18__11)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__11) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__11] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3308(line=114, offs=9) -- 3463(line=117, offs=17)
-*/
-/*
-local: div_gt_zero_87$0(level=0), get_multiplicity_98$0(level=1)
-global: div_gt_zero_87$0(level=0), get_multiplicity_98$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-get_multiplicity_98(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret221, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp222, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp223, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp224, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3308(line=114, offs=9) -- 3463(line=117, offs=17)
-*/
-ATSINSflab(__patsflab_get_multiplicity_98):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3380(line=115, offs=13) -- 3385(line=115, offs=18)
-*/
-ATSINSmove(tmp222, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3374(line=115, offs=7) -- 3463(line=117, offs=17)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3399(line=116, offs=11) -- 3400(line=116, offs=12)
-*/
-ATSINSlab(__atstmplab18):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3380(line=115, offs=13) -- 3385(line=115, offs=18)
-*/
-ATSifnthen(ATSCKpat_int(tmp222, ATSPMVint(0))) { ATSINSgoto(__atstmplab20) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3400(line=116, offs=12) -- 3400(line=116, offs=12)
-*/
-ATSINSlab(__atstmplab19):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3425(line=116, offs=37) -- 3442(line=116, offs=54)
-*/
-ATSINSmove(tmp224, div_gt_zero_87(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3408(line=116, offs=20) -- 3446(line=116, offs=58)
-*/
-ATSINSmove(tmp223, get_multiplicity_98(tmp224, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3404(line=116, offs=16) -- 3446(line=116, offs=58)
-*/
-ATSINSmove(tmpret221, atspre_g1int_add_int(ATSPMVi0nt(1), tmp223)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3458(line=117, offs=12) -- 3458(line=117, offs=12)
-*/
-ATSINSlab(__atstmplab20):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3462(line=117, offs=16) -- 3463(line=117, offs=17)
-*/
-ATSINSmove(tmpret221, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret221) ;
-} /* end of [get_multiplicity_98] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3477(line=119, offs=9) -- 3777(line=129, offs=26)
-*/
-/*
-local: exp_5$0(level=0), is_prime_50$0(level=0), legendre_89$0(level=1), get_multiplicity_98$0(level=1), loop_99$0(level=1)
-global: exp_5$0(level=0), is_prime_50$0(level=0), div_gt_zero_87$0(level=0), legendre_89$0(level=1), get_multiplicity_98$0(level=1), loop_99$0(level=1)
-local: a$5120(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5121(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: a$5120(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5121(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_99(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret225, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp226, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp229, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp232, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp233, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp236, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp237, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp238, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp239, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp240, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp241, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp242, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3477(line=119, offs=9) -- 3777(line=129, offs=26)
-*/
-ATSINSflab(__patsflab_loop_99):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3533(line=120, offs=10) -- 3540(line=120, offs=17)
-*/
-ATSINSmove(tmp226, ATSLIB_056_prelude__gt_g1int_int__6__5(arg0, env1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3530(line=120, offs=7) -- 3777(line=129, offs=26)
-*/
-ATSif(
-tmp226
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3554(line=121, offs=9) -- 3555(line=121, offs=10)
-*/
-ATSINSmove(tmpret225, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3578(line=123, offs=12) -- 3583(line=123, offs=17)
-*/
-ATSINSmove(tmp229, ATSLIB_056_prelude__eq_g1int_int__18__3(env0, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3575(line=123, offs=9) -- 3777(line=129, offs=26)
-*/
-ATSif(
-tmp229
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3599(line=124, offs=11) -- 3600(line=124, offs=12)
-*/
-ATSINSmove(tmpret225, ATSPMVi0nt(0)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3627(line=126, offs=14) -- 3654(line=126, offs=41)
-*/
-ATSINSmove(tmp236, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3627(line=126, offs=14) -- 3654(line=126, offs=41)
-*/
-ATSINSmove(tmp233, ATSLIB_056_prelude__eq_g0int_int__12__12(tmp236, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3627(line=126, offs=14) -- 3654(line=126, offs=41)
-*/
-ATSif(
-tmp233
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3627(line=126, offs=14) -- 3654(line=126, offs=41)
-*/
-ATSINSmove(tmp232, is_prime_50(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3627(line=126, offs=14) -- 3654(line=126, offs=41)
-*/
-ATSINSmove(tmp232, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3624(line=126, offs=11) -- 3777(line=129, offs=26)
-*/
-ATSif(
-tmp232
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3678(line=127, offs=18) -- 3685(line=127, offs=25)
-*/
-ATSINSmove(tmp238, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3673(line=127, offs=13) -- 3686(line=127, offs=26)
-*/
-ATSINSmove(tmp237, loop_99(env0, env1, tmp238)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3693(line=127, offs=33) -- 3709(line=127, offs=49)
-*/
-ATSINSmove(tmp240, legendre_89(arg0, env1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3711(line=127, offs=51) -- 3735(line=127, offs=75)
-*/
-ATSINSmove(tmp241, get_multiplicity_98(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3689(line=127, offs=29) -- 3736(line=127, offs=76)
-*/
-ATSINSmove(tmp239, exp_5(tmp240, tmp241)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3673(line=127, offs=13) -- 3736(line=127, offs=76)
-*/
-ATSINSmove(tmpret225, atspre_g0int_mul_int(tmp237, tmp239)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3769(line=129, offs=18) -- 3776(line=129, offs=25)
-*/
-ATSINSmove(tmp242, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3764(line=129, offs=13) -- 3777(line=129, offs=26)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp242) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSfgoto(__patsflab_loop_99) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret225) ;
-} /* end of [loop_99] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__5, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__5, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__5, atspre_g1int_gt_int(arg0, tmp11__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__5) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__5] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27__3, atspre_g1int_eq_int(arg0, tmp28__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18__3] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$12(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__12(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__12, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__12, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__12, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__12, atspre_g0int_eq_int(arg0, tmp18__12)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__12) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__12] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3875(line=135, offs=5) -- 4213(line=145, offs=26)
-*/
-/*
-local: jacobi2_103$0(level=0)
-global: jacobi2_103$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-jacobi2_103(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(tmpret243, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp244, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp247, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp248, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp251, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp252, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp253, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp256, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp259, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp260, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp261, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp262, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp263, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp264, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp265, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp268, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp271, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp272, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3875(line=135, offs=5) -- 4213(line=145, offs=26)
-*/
-ATSINSflab(__patsflab_jacobi2_103):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3932(line=136, offs=3) -- 4213(line=145, offs=26)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3949(line=137, offs=7) -- 3950(line=137, offs=8)
-*/
-ATSINSlab(__atstmplab21):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3898(line=135, offs=28) -- 3899(line=135, offs=29)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab23) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3950(line=137, offs=8) -- 3950(line=137, offs=8)
-*/
-ATSINSlab(__atstmplab22):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3954(line=137, offs=12) -- 3955(line=137, offs=13)
-*/
-ATSINSmove(tmpret243, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3962(line=138, offs=7) -- 3963(line=138, offs=8)
-*/
-ATSINSlab(__atstmplab23):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3898(line=135, offs=28) -- 3899(line=135, offs=29)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab25) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3963(line=138, offs=8) -- 3963(line=138, offs=8)
-*/
-ATSINSlab(__atstmplab24):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3967(line=138, offs=12) -- 3968(line=138, offs=13)
-*/
-ATSINSmove(tmpret243, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3976(line=139, offs=8) -- 3976(line=139, offs=8)
-*/
-ATSINSlab(__atstmplab25):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3982(line=139, offs=14) -- 3987(line=139, offs=19)
-*/
-ATSINSmove(tmp244, ATSLIB_056_prelude__gt_g1int_int__6__6(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3982(line=139, offs=14) -- 3987(line=139, offs=19)
-*/
-ATSifnthen(ATSCKpat_bool(tmp244, ATSPMVbool_true())) { ATSINSgoto(__atstmplab26) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4008(line=139, offs=40) -- 4013(line=139, offs=45)
-*/
-ATSINSmove(tmp247, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3991(line=139, offs=23) -- 4018(line=139, offs=50)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp247)) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_jacobi2_103) ;
-ATStailcal_end()
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4026(line=140, offs=8) -- 4026(line=140, offs=8)
-*/
-ATSINSlab(__atstmplab26):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4032(line=140, offs=14) -- 4037(line=140, offs=19)
-*/
-ATSINSmove(tmp251, atspre_g0int_mod_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4032(line=140, offs=14) -- 4041(line=140, offs=23)
-*/
-ATSINSmove(tmp248, ATSLIB_056_prelude__eq_g0int_int__12__13(tmp251, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4032(line=140, offs=14) -- 4041(line=140, offs=23)
-*/
-ATSifnthen(ATSCKpat_bool(tmp248, ATSPMVbool_true())) { ATSINSgoto(__atstmplab27) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp256, atspre_g0int_mod_int(arg1, ATSPMVi0nt(8))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp253, ATSLIB_056_prelude__eq_g0int_int__12__14(tmp256, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSif(
-tmp253
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp252, ATSPMVbool_true()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp259, atspre_g0int_mod_int(arg1, ATSPMVi0nt(8))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp260, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4048(line=140, offs=30) -- 4071(line=140, offs=53)
-*/
-ATSINSmove(tmp252, ATSLIB_056_prelude__eq_g0int_int__12__15(tmp259, tmp260)) ;
-
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4045(line=140, offs=27) -- 4134(line=143, offs=25)
-*/
-ATSif(
-tmp252
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4091(line=141, offs=15) -- 4096(line=141, offs=20)
-*/
-ATSINSmove(tmp261, atspre_g1int_div_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4083(line=141, offs=7) -- 4100(line=141, offs=24)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp261) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_jacobi2_103) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4125(line=143, offs=16) -- 4130(line=143, offs=21)
-*/
-ATSINSmove(tmp263, atspre_g1int_div_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4117(line=143, offs=8) -- 4134(line=143, offs=25)
-*/
-ATSINSmove(tmp262, jacobi2_103(tmp263, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4116(line=143, offs=7) -- 4134(line=143, offs=25)
-*/
-ATSINSmove(tmpret243, atspre_g0int_neg_int(tmp262)) ;
-
-} /* ATSendif */
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4142(line=144, offs=8) -- 4142(line=144, offs=8)
-*/
-ATSINSlab(__atstmplab27):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-guard:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSINSmove(tmp268, atspre_g0int_mod_int(arg0, ATSPMVi0nt(4))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSINSmove(tmp265, ATSLIB_056_prelude__eq_g0int_int__12__16(tmp268, ATSPMVi0nt(3))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSif(
-tmp265
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSINSmove(tmp271, atspre_g0int_mod_int(arg1, ATSPMVi0nt(4))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSINSmove(tmp264, ATSLIB_056_prelude__eq_g0int_int__12__17(tmp271, ATSPMVi0nt(3))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSINSmove(tmp264, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4148(line=144, offs=14) -- 4170(line=144, offs=36)
-*/
-ATSifnthen(ATSCKpat_bool(tmp264, ATSPMVbool_true())) { ATSINSgoto(__atstmplab28) ; } ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4174(line=144, offs=40) -- 4187(line=144, offs=53)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg1) ;
-ATSINSmove_tlcal(apy1, arg0) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_jacobi2_103) ;
-ATStailcal_end()
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4195(line=145, offs=8) -- 4195(line=145, offs=8)
-*/
-ATSINSlab(__atstmplab28):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4200(line=145, offs=13) -- 4213(line=145, offs=26)
-*/
-ATSINSmove(tmp272, jacobi2_103(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4199(line=145, offs=12) -- 4213(line=145, offs=26)
-*/
-ATSINSmove(tmpret243, atspre_g0int_neg_int(tmp272)) ;
-
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret243) ;
-} /* end of [jacobi2_103] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$6(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__6, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__6, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__6, atspre_g1int_gt_int(arg0, tmp11__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__6) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__6] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$13(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__13(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__13, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__13, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__13, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__13, atspre_g0int_eq_int(arg0, tmp18__13)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__13) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__13] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$14(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__14(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__14, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__14, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__14, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__14, atspre_g0int_eq_int(arg0, tmp18__14)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__14) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__14] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$15(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__15(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__15, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__15, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__15, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__15, atspre_g0int_eq_int(arg0, tmp18__15)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__15) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__15] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$16(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__16(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__16, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__16, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__16, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__16, atspre_g0int_eq_int(arg0, tmp18__16)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__16) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__16] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$17(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__17(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__17, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__17, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__17, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__17, atspre_g0int_eq_int(arg0, tmp18__17)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__17) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__17] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4244(line=147, offs=30) -- 4281(line=148, offs=32)
-*/
-/*
-local: 
-global: count_divisors_ats$111$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret273, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp285, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4225(line=147, offs=11) -- 4281(line=148, offs=32)
-*/
-ATSINSflab(__patsflab_count_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4269(line=148, offs=20) -- 4279(line=148, offs=30)
-*/
-ATSINSmove(tmp285, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4252(line=148, offs=3) -- 4281(line=148, offs=32)
-*/
-ATSINSmove(tmpret273, ATSLIB_056_prelude__stream_vt_length__112__1(tmp285)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret273) ;
-} /* end of [count_divisors_ats] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 8385(line=480, offs=17) -- 8607(line=495, offs=4)
-*/
-/*
-local: 
-global: stream_vt_length$112$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(8178)
-tmparg = S2Evar(a(8178))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_int)
-ATSLIB_056_prelude__stream_vt_length__112(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret274, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8369(line=480, offs=1) -- 8607(line=495, offs=4)
-*/
-ATSINSflab(__patsflab_stream_vt_length):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8590(line=494, offs=16) -- 8602(line=494, offs=28)
-*/
-ATSINSmove(tmpret274, ATSfunclo_fun(PMVd2vfunlab(d2v=loop$4186(1), flab=loop_113$0(level=1)), (atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))(arg0, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret274) ;
-} /* end of [ATSLIB_056_prelude__stream_vt_length__112] */
-#endif // end of [TEMPLATE]
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 8404(line=483, offs=1) -- 8548(line=491, offs=2)
-*/
-/*
-local: loop_113$0(level=1)
-global: loop_113$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_113__113(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret275, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp276, atstype_boxed) ;
-ATStmpdec(tmp278, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp279, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8404(line=483, offs=1) -- 8548(line=491, offs=2)
-*/
-ATSINSflab(__patsflab_loop_113):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-ATSINSmove_llazyeval(tmp276, atstype_boxed, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8464(line=488, offs=3) -- 8546(line=490, offs=44)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8481(line=489, offs=5) -- 8497(line=489, offs=21)
-*/
-ATSINSlab(__atstmplab29):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-ATSifthen(ATSCKptriscons(tmp276)) { ATSINSgoto(__atstmplab32) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8497(line=489, offs=21) -- 8497(line=489, offs=21)
-*/
-ATSINSlab(__atstmplab30):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8501(line=489, offs=25) -- 8502(line=489, offs=26)
-*/
-ATSINSmove(tmpret275, arg1) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8529(line=490, offs=27)
-*/
-ATSINSlab(__atstmplab31):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-#if(0)
-ATSifthen(ATSCKptrisnull(tmp276)) { ATSINSdeadcode_fail() ; } ;
-#endif
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8529(line=490, offs=27) -- 8529(line=490, offs=27)
-*/
-ATSINSlab(__atstmplab32):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8526(line=490, offs=24) -- 8528(line=490, offs=26)
-*/
-ATSINSmove(tmp278, ATSSELcon(tmp276, postiats_tysum_2, atslab__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8546(line=490, offs=44)
-*/
-ATSINSfreecon(tmp276) ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8542(line=490, offs=40) -- 8545(line=490, offs=43)
-*/
-ATSINSmove(tmp279, PMVtmpltcst(g1int_add<S2Eextkind(atstype_int)>)(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8533(line=490, offs=31) -- 8546(line=490, offs=44)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp278) ;
-ATSINSmove_tlcal(apy1, tmp279) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_113) ;
-ATStailcal_end()
-
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret275) ;
-} /* end of [loop_113__113] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 8385(line=480, offs=17) -- 8607(line=495, offs=4)
-*/
-/*
-local: 
-global: stream_vt_length$112$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(8178)
-tmparg = S2Evar(a(8178))
-tmpsub = Some(a(8178) -> S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int)))
-*/
-atstkind_t0ype(atstype_int)
-ATSLIB_056_prelude__stream_vt_length__112__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret274__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8369(line=480, offs=1) -- 8607(line=495, offs=4)
-*/
-ATSINSflab(__patsflab_stream_vt_length):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8590(line=494, offs=16) -- 8602(line=494, offs=28)
-*/
-ATSINSmove(tmpret274__1, loop_113__113__1(arg0, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret274__1) ;
-} /* end of [ATSLIB_056_prelude__stream_vt_length__112__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 8404(line=483, offs=1) -- 8548(line=491, offs=2)
-*/
-/*
-local: loop_113$1(level=2)
-global: loop_113$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_113__113__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret275__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp276__1, atstype_boxed) ;
-ATStmpdec(tmp278__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp279__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8404(line=483, offs=1) -- 8548(line=491, offs=2)
-*/
-ATSINSflab(__patsflab_loop_113):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-ATSINSmove_llazyeval(tmp276__1, atstype_boxed, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8464(line=488, offs=3) -- 8546(line=490, offs=44)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8481(line=489, offs=5) -- 8497(line=489, offs=21)
-*/
-ATSINSlab(__atstmplab29):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-ATSifthen(ATSCKptriscons(tmp276__1)) { ATSINSgoto(__atstmplab32) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8497(line=489, offs=21) -- 8497(line=489, offs=21)
-*/
-ATSINSlab(__atstmplab30):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8501(line=489, offs=25) -- 8502(line=489, offs=26)
-*/
-ATSINSmove(tmpret275__1, arg1) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8529(line=490, offs=27)
-*/
-ATSINSlab(__atstmplab31):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
-*/
-#if(0)
-ATSifthen(ATSCKptrisnull(tmp276__1)) { ATSINSdeadcode_fail() ; } ;
-#endif
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8529(line=490, offs=27) -- 8529(line=490, offs=27)
-*/
-ATSINSlab(__atstmplab32):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8526(line=490, offs=24) -- 8528(line=490, offs=26)
-*/
-ATSINSmove(tmp278__1, ATSSELcon(tmp276__1, postiats_tysum_1, atslab__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8546(line=490, offs=44)
-*/
-ATSINSfreecon(tmp276__1) ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8542(line=490, offs=40) -- 8545(line=490, offs=43)
-*/
-ATSINSmove(tmp279__1, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8533(line=490, offs=31) -- 8546(line=490, offs=44)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp278__1) ;
-ATSINSmove_tlcal(apy1, tmp279__1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_113) ;
-ATStailcal_end()
-
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret275__1) ;
-} /* end of [loop_113__113__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4310(line=150, offs=28) -- 4879(line=176, offs=6)
-*/
-/*
-local: sqrt_int_48$0(level=0)
-global: sqrt_int_48$0(level=0), sum_divisors_ats$116$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret286, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4293(line=150, offs=11) -- 4879(line=176, offs=6)
-*/
-ATSINSflab(__patsflab_sum_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4318(line=151, offs=3) -- 4879(line=176, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4863(line=175, offs=5) -- 4873(line=175, offs=15)
-*/
-ATSINSmove(tmpret286, loop_117(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4318(line=151, offs=3) -- 4879(line=176, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret286) ;
-} /* end of [sum_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4330(line=152, offs=9) -- 4853(line=173, offs=27)
-*/
-/*
-local: sqrt_int_48$0(level=0), loop_117$0(level=1)
-global: sqrt_int_48$0(level=0), loop_117$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_117(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(tmpret287, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp288, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp291, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp292, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp295, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp296, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp299, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref300, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp301, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp304, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref305, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp306, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp307, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp308, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp309, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4330(line=152, offs=9) -- 4853(line=173, offs=27)
-*/
-ATSINSflab(__patsflab_loop_117):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4424(line=153, offs=17) -- 4434(line=153, offs=27)
-*/
-ATSINSmove(tmp291, sqrt_int_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4417(line=153, offs=10) -- 4434(line=153, offs=27)
-*/
-ATSINSmove(tmp288, ATSLIB_056_prelude__gte_g1int_int__70__2(arg1, tmp291)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4414(line=153, offs=7) -- 4853(line=173, offs=27)
-*/
-ATSif(
-tmp288
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4452(line=154, offs=12) -- 4459(line=154, offs=19)
-*/
-ATSINSmove(tmp295, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4452(line=154, offs=12) -- 4463(line=154, offs=23)
-*/
-ATSINSmove(tmp292, ATSLIB_056_prelude__eq_g0int_int__12__18(tmp295, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4449(line=154, offs=9) -- 4661(line=164, offs=12)
-*/
-ATSif(
-tmp292
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4482(line=155, offs=14) -- 4489(line=155, offs=21)
-*/
-ATSINSmove(tmp299, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4482(line=155, offs=14) -- 4496(line=155, offs=28)
-*/
-ATSINSmove(tmp296, ATSLIB_056_prelude__neq_g1int_int__74__2(tmp299, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4479(line=155, offs=11) -- 4636(line=162, offs=16)
-*/
-ATSif(
-tmp296
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4514(line=156, offs=13) -- 4605(line=160, offs=16)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4536(line=157, offs=19) -- 4537(line=157, offs=20)
-*/
-/*
-ATSINStmpdec(tmpref300) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4545(line=157, offs=28) -- 4552(line=157, offs=35)
-*/
-ATSINSmove(tmpref300, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4582(line=159, offs=15) -- 4589(line=159, offs=22)
-*/
-ATSINSmove(tmpret287, atspre_g1int_add_int(arg1, tmpref300)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4514(line=156, offs=13) -- 4605(line=160, offs=16)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4633(line=162, offs=13) -- 4636(line=162, offs=16)
-*/
-ATSINSmove(tmpret287, arg1) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4660(line=164, offs=11) -- 4661(line=164, offs=12)
-*/
-ATSINSmove(tmpret287, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4684(line=166, offs=12) -- 4691(line=166, offs=19)
-*/
-ATSINSmove(tmp304, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4684(line=166, offs=12) -- 4695(line=166, offs=23)
-*/
-ATSINSmove(tmp301, ATSLIB_056_prelude__eq_g0int_int__12__19(tmp304, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4681(line=166, offs=9) -- 4853(line=173, offs=27)
-*/
-ATSif(
-tmp301
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4711(line=167, offs=11) -- 4813(line=171, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4731(line=168, offs=17) -- 4732(line=168, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref305) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4740(line=168, offs=26) -- 4747(line=168, offs=33)
-*/
-ATSINSmove(tmpref305, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4773(line=170, offs=13) -- 4780(line=170, offs=20)
-*/
-ATSINSmove(tmp306, atspre_g1int_add_int(arg1, tmpref305)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4791(line=170, offs=31) -- 4798(line=170, offs=38)
-*/
-ATSINSmove(tmp308, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4783(line=170, offs=23) -- 4799(line=170, offs=39)
-*/
-ATSINSmove(tmp307, loop_117(arg0, tmp308)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4773(line=170, offs=13) -- 4799(line=170, offs=39)
-*/
-ATSINSmove(tmpret287, atspre_g0int_add_int(tmp306, tmp307)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4711(line=167, offs=11) -- 4813(line=171, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4845(line=173, offs=19) -- 4852(line=173, offs=26)
-*/
-ATSINSmove(tmp309, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4837(line=173, offs=11) -- 4853(line=173, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp309) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_117) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret287) ;
-} /* end of [loop_117] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$70$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4636)
-tmparg = S2Evar(tk(4636))
-tmpsub = Some(tk(4636) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp150__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp150__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret149__2, atspre_g1int_gte_int(arg0, tmp150__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret149__2) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__70__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$18(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__18(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__18, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__18, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__18, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__18, atspre_g0int_eq_int(arg0, tmp18__18)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__18) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__18] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$74$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4642)
-tmparg = S2Evar(tk(4642))
-tmpsub = Some(tk(4642) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret159__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp160__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp160__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret159__2, atspre_g1int_neq_int(arg0, tmp160__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret159__2) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__74__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$19(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__19(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__19, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__19, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__19, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__19, atspre_g0int_eq_int(arg0, tmp18__19)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__19) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__19] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4906(line=178, offs=26) -- 4937(line=179, offs=26)
-*/
-/*
-local: 
-global: is_perfect_ats$123$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret310, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp313, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4891(line=178, offs=11) -- 4937(line=179, offs=26)
-*/
-ATSINSflab(__patsflab_is_perfect_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4914(line=179, offs=3) -- 4932(line=179, offs=21)
-*/
-ATSINSmove(tmp313, sum_divisors_ats(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4914(line=179, offs=3) -- 4937(line=179, offs=26)
-*/
-ATSINSmove(tmpret310, ATSLIB_056_prelude__eq_g0int_int__12__20(tmp313, arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret310) ;
-} /* end of [is_perfect_ats] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$20(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__20(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__20, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__20, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__20, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__20, atspre_g0int_eq_int(arg0, tmp18__20)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__20) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__20] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4943(line=181, offs=5) -- 5263(line=195, offs=8)
-*/
-/*
-local: rip_125$0(level=0)
-global: rip_125$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-rip_125(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret314, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp315, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp320, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp321, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp324, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref325, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp326, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp329, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4943(line=181, offs=5) -- 5263(line=195, offs=8)
-*/
-ATSINSflab(__patsflab_rip_125):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5065(line=182, offs=6) -- 5070(line=182, offs=11)
-*/
-ATSINSmove(tmp320, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5065(line=182, offs=6) -- 5075(line=182, offs=16)
-*/
-ATSINSmove(tmp315, ATSLIB_056_prelude__neq_g0int_int__126__1(tmp320, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5062(line=182, offs=3) -- 5263(line=195, offs=8)
-*/
-ATSif(
-tmp315
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5085(line=183, offs=5) -- 5086(line=183, offs=6)
-*/
-ATSINSmove(tmpret314, arg0) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5101(line=185, offs=8) -- 5106(line=185, offs=13)
-*/
-ATSINSmove(tmp324, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5101(line=185, offs=8) -- 5110(line=185, offs=17)
-*/
-ATSINSmove(tmp321, ATSLIB_056_prelude__gt_g1int_int__6__7(tmp324, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5098(line=185, offs=5) -- 5263(line=195, offs=8)
-*/
-ATSif(
-tmp321
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5122(line=186, offs=7) -- 5246(line=193, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5138(line=187, offs=13) -- 5140(line=187, offs=15)
-*/
-/*
-ATSINStmpdec(tmpref325) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5143(line=187, offs=18) -- 5148(line=187, offs=23)
-*/
-ATSINSmove(tmpref325, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5169(line=189, offs=12) -- 5175(line=189, offs=18)
-*/
-ATSINSmove(tmp326, ATSLIB_056_prelude__lt_g1int_int__52__2(tmpref325, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5166(line=189, offs=9) -- 5236(line=192, offs=12)
-*/
-ATSif(
-tmp326
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5200(line=190, offs=20) -- 5210(line=190, offs=30)
-*/
-ATSINSmove(tmp329, rip_125(tmpref325, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5191(line=190, offs=11) -- 5211(line=190, offs=31)
-*/
-ATSINSmove(tmpret314, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp329)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5235(line=192, offs=11) -- 5236(line=192, offs=12)
-*/
-ATSINSmove(tmpret314, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5122(line=186, offs=7) -- 5246(line=193, offs=10)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5262(line=195, offs=7) -- 5263(line=195, offs=8)
-*/
-ATSINSmove(tmpret314, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret314) ;
-} /* end of [rip_125] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12337(line=639, offs=3) -- 12377(line=639, offs=43)
-*/
-/*
-local: 
-global: neq_g0int_int$126$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4625)
-tmparg = S2Evar(tk(4625))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g0int_int__126(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret316, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp317, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12321(line=638, offs=1) -- 12377(line=639, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12364(line=639, offs=30) -- 12375(line=639, offs=41)
-*/
-ATSINSmove(tmp317, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4625))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12346(line=639, offs=12) -- 12377(line=639, offs=43)
-*/
-ATSINSmove(tmpret316, PMVtmpltcst(g0int_neq<S2Evar(tk(4625))>)(arg0, tmp317)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret316) ;
-} /* end of [ATSLIB_056_prelude__neq_g0int_int__126] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12337(line=639, offs=3) -- 12377(line=639, offs=43)
-*/
-/*
-local: 
-global: neq_g0int_int$126$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4625)
-tmparg = S2Evar(tk(4625))
-tmpsub = Some(tk(4625) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g0int_int__126__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret316__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp317__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12321(line=638, offs=1) -- 12377(line=639, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12364(line=639, offs=30) -- 12375(line=639, offs=41)
-*/
-ATSINSmove(tmp317__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12346(line=639, offs=12) -- 12377(line=639, offs=43)
-*/
-ATSINSmove(tmpret316__1, atspre_g0int_neq_int(arg0, tmp317__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret316__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g0int_int__126__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$7(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__7, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__7, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__7, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__7, atspre_g1int_gt_int(arg0, tmp11__7)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__7) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__7] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = Some(tk(4627) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110__2, atspre_g1int_lt_int(arg0, tmp111__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110__2) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5289(line=197, offs=25) -- 5850(line=215, offs=6)
-*/
-/*
-local: is_prime_50$0(level=0), rip_125$0(level=0)
-global: sqrt_int_48$0(level=0), is_prime_50$0(level=0), rip_125$0(level=0), prime_factors$131$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret330, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5275(line=197, offs=11) -- 5850(line=215, offs=6)
-*/
-ATSINSflab(__patsflab_prime_factors):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5297(line=198, offs=3) -- 5850(line=215, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5834(line=214, offs=5) -- 5844(line=214, offs=15)
-*/
-ATSINSmove(tmpret330, loop_132(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5297(line=198, offs=3) -- 5850(line=215, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret330) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5309(line=199, offs=9) -- 5824(line=212, offs=27)
-*/
-/*
-local: is_prime_50$0(level=0), rip_125$0(level=0), loop_132$0(level=1)
-global: is_prime_50$0(level=0), rip_125$0(level=0), loop_132$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_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(tmpret331, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp332, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp335, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp340, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp341, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp344, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp345, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp348, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp355, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5309(line=199, offs=9) -- 5824(line=212, offs=27)
-*/
-ATSINSflab(__patsflab_loop_132):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5407(line=200, offs=10) -- 5415(line=200, offs=18)
-*/
-ATSINSmove(tmp332, ATSLIB_056_prelude__gte_g1int_int__70__3(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5404(line=200, offs=7) -- 5824(line=212, offs=27)
-*/
-ATSif(
-tmp332
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5432(line=201, offs=12) -- 5442(line=201, offs=22)
-*/
-ATSINSmove(tmp335, is_prime_50(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5429(line=201, offs=9) -- 5555(line=204, offs=33)
-*/
-ATSif(
-tmp335
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5459(line=202, offs=11) -- 5509(line=202, offs=61)
-*/
-ATSINSmove_ldelay(tmpret331, atstype_boxed, ATSPMVcfunlab(1, __patsfun_134, (arg0))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5533(line=204, offs=11) -- 5555(line=204, offs=33)
-*/
-ATSINSmove_ldelay(tmpret331, atstype_boxed, ATSPMVcfunlab(1, __patsfun_136, ())) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5578(line=206, offs=12) -- 5605(line=206, offs=39)
-*/
-ATSINSmove(tmp344, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5578(line=206, offs=12) -- 5605(line=206, offs=39)
-*/
-ATSINSmove(tmp341, ATSLIB_056_prelude__eq_g0int_int__12__21(tmp344, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5578(line=206, offs=12) -- 5605(line=206, offs=39)
-*/
-ATSif(
-tmp341
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5578(line=206, offs=12) -- 5605(line=206, offs=39)
-*/
-ATSINSmove(tmp340, is_prime_50(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5578(line=206, offs=12) -- 5605(line=206, offs=39)
-*/
-ATSINSmove(tmp340, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5575(line=206, offs=9) -- 5824(line=212, offs=27)
-*/
-ATSif(
-tmp340
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5625(line=207, offs=14) -- 5632(line=207, offs=21)
-*/
-ATSINSmove(tmp348, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5625(line=207, offs=14) -- 5636(line=207, offs=25)
-*/
-ATSINSmove(tmp345, ATSLIB_056_prelude__gt_g1int_int__6__8(tmp348, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5622(line=207, offs=11) -- 5784(line=210, offs=65)
-*/
-ATSif(
-tmp345
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5654(line=208, offs=13) -- 5704(line=208, offs=63)
-*/
-ATSINSmove_ldelay(tmpret331, atstype_boxed, ATSPMVcfunlab(1, __patsfun_139, (arg0, arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5732(line=210, offs=13) -- 5784(line=210, offs=65)
-*/
-ATSINSmove_ldelay(tmpret331, atstype_boxed, ATSPMVcfunlab(1, __patsfun_140, (arg1))) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5816(line=212, offs=19) -- 5823(line=212, offs=26)
-*/
-ATSINSmove(tmp355, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5808(line=212, offs=11) -- 5824(line=212, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp355) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_132) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret331) ;
-} /* end of [loop_132] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$70$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4636)
-tmparg = S2Evar(tk(4636))
-tmpsub = Some(tk(4636) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp150__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp150__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret149__3, atspre_g1int_gte_int(arg0, tmp150__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret149__3) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__70__3] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5459(line=202, offs=11) -- 5509(line=202, offs=61)
-*/
-/*
-local: 
-global: __patsfun_134$0(level=2)
-local: n$5161(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5161(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_134(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret336, atstype_boxed) ;
-ATStmpdec(tmp337, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5459(line=202, offs=11) -- 5509(line=202, offs=61)
-*/
-ATSINSflab(__patsflab___patsfun_134):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5459(line=202, offs=11) -- 5509(line=202, offs=61)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5485(line=202, offs=37) -- 5507(line=202, offs=59)
-*/
-ATSINSmove_ldelay(tmp337, atstype_boxed, ATSPMVcfunlab(1, __patsfun_135, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5467(line=202, offs=19) -- 5508(line=202, offs=60)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret336, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret336, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret336, postiats_tysum_1, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret336, postiats_tysum_1, atslab__1, tmp337) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret336) ;
-} /* end of [__patsfun_134] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5485(line=202, offs=37) -- 5507(line=202, offs=59)
-*/
-/*
-local: 
-global: __patsfun_135$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_135(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret338, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5485(line=202, offs=37) -- 5507(line=202, offs=59)
-*/
-ATSINSflab(__patsflab___patsfun_135):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5485(line=202, offs=37) -- 5507(line=202, offs=59)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5493(line=202, offs=45) -- 5506(line=202, offs=58)
-*/
-
-ATSINSmove_nil(tmpret338) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret338) ;
-} /* end of [__patsfun_135] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5533(line=204, offs=11) -- 5555(line=204, offs=33)
-*/
-/*
-local: 
-global: __patsfun_136$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_136(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret339, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5533(line=204, offs=11) -- 5555(line=204, offs=33)
-*/
-ATSINSflab(__patsflab___patsfun_136):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5533(line=204, offs=11) -- 5555(line=204, offs=33)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5541(line=204, offs=19) -- 5554(line=204, offs=32)
-*/
-
-ATSINSmove_nil(tmpret339) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret339) ;
-} /* end of [__patsfun_136] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$21(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__21(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__21, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__21, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__21, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__21, atspre_g0int_eq_int(arg0, tmp18__21)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__21) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__21] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$8(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__8, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__8, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__8, atspre_g1int_gt_int(arg0, tmp11__8)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__8) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__8] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5654(line=208, offs=13) -- 5704(line=208, offs=63)
-*/
-/*
-local: rip_125$0(level=0), loop_132$0(level=1)
-global: rip_125$0(level=0), loop_132$0(level=1), __patsfun_139$0(level=2)
-local: n$5161(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5162(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5161(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5162(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_139(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret349, atstype_boxed) ;
-ATStmpdec(tmp350, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp351, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5654(line=208, offs=13) -- 5704(line=208, offs=63)
-*/
-ATSINSflab(__patsflab___patsfun_139):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5654(line=208, offs=13) -- 5704(line=208, offs=63)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5687(line=208, offs=46) -- 5698(line=208, offs=57)
-*/
-ATSINSmove(tmp351, rip_125(env0, env1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5682(line=208, offs=41) -- 5702(line=208, offs=61)
-*/
-ATSINSmove(tmp350, loop_132(tmp351, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5662(line=208, offs=21) -- 5703(line=208, offs=62)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret349, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret349, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret349, postiats_tysum_1, atslab__0, env1) ;
-ATSINSstore_con1_ofs(tmpret349, postiats_tysum_1, atslab__1, tmp350) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret349) ;
-} /* end of [__patsfun_139] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5732(line=210, offs=13) -- 5784(line=210, offs=65)
-*/
-/*
-local: 
-global: __patsfun_140$0(level=2)
-local: acc$5162(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5162(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_140(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret352, atstype_boxed) ;
-ATStmpdec(tmp353, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5732(line=210, offs=13) -- 5784(line=210, offs=65)
-*/
-ATSINSflab(__patsflab___patsfun_140):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5732(line=210, offs=13) -- 5784(line=210, offs=65)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5760(line=210, offs=41) -- 5782(line=210, offs=63)
-*/
-ATSINSmove_ldelay(tmp353, atstype_boxed, ATSPMVcfunlab(1, __patsfun_141, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5740(line=210, offs=21) -- 5783(line=210, offs=64)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret352, postiats_tysum_1) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret352, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret352, postiats_tysum_1, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret352, postiats_tysum_1, atslab__1, tmp353) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret352) ;
-} /* end of [__patsfun_140] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5760(line=210, offs=41) -- 5782(line=210, offs=63)
-*/
-/*
-local: 
-global: __patsfun_141$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_141(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret354, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5760(line=210, offs=41) -- 5782(line=210, offs=63)
-*/
-ATSINSflab(__patsflab___patsfun_141):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5760(line=210, offs=41) -- 5782(line=210, offs=63)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5768(line=210, offs=49) -- 5781(line=210, offs=62)
-*/
-
-ATSINSmove_nil(tmpret354) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret354) ;
-} /* end of [__patsfun_141] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5879(line=217, offs=28) -- 6288(line=235, offs=6)
-*/
-/*
-local: is_prime_50$0(level=0), rip_125$0(level=0)
-global: sqrt_int_48$0(level=0), is_prime_50$0(level=0), rip_125$0(level=0), little_omega_ats$142$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret356, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5862(line=217, offs=11) -- 6288(line=235, offs=6)
-*/
-ATSINSflab(__patsflab_little_omega_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5887(line=218, offs=3) -- 6288(line=235, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6272(line=234, offs=5) -- 6282(line=234, offs=15)
-*/
-ATSINSmove(tmpret356, loop_143(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5887(line=218, offs=3) -- 6288(line=235, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret356) ;
-} /* end of [little_omega_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5899(line=219, offs=9) -- 6262(line=232, offs=27)
-*/
-/*
-local: is_prime_50$0(level=0), rip_125$0(level=0), loop_143$0(level=1)
-global: is_prime_50$0(level=0), rip_125$0(level=0), loop_143$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_143(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(tmpret357, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp358, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp361, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp362, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp363, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp366, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp367, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp370, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp371, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp372, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp373, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5899(line=219, offs=9) -- 6262(line=232, offs=27)
-*/
-ATSINSflab(__patsflab_loop_143):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5992(line=220, offs=10) -- 6000(line=220, offs=18)
-*/
-ATSINSmove(tmp358, ATSLIB_056_prelude__gte_g1int_int__70__4(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5989(line=220, offs=7) -- 6262(line=232, offs=27)
-*/
-ATSif(
-tmp358
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6017(line=221, offs=12) -- 6027(line=221, offs=22)
-*/
-ATSINSmove(tmp361, is_prime_50(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6014(line=221, offs=9) -- 6070(line=224, offs=12)
-*/
-ATSif(
-tmp361
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6044(line=222, offs=11) -- 6045(line=222, offs=12)
-*/
-ATSINSmove(tmpret357, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6069(line=224, offs=11) -- 6070(line=224, offs=12)
-*/
-ATSINSmove(tmpret357, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6093(line=226, offs=12) -- 6120(line=226, offs=39)
-*/
-ATSINSmove(tmp366, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6093(line=226, offs=12) -- 6120(line=226, offs=39)
-*/
-ATSINSmove(tmp363, ATSLIB_056_prelude__eq_g0int_int__12__22(tmp366, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6093(line=226, offs=12) -- 6120(line=226, offs=39)
-*/
-ATSif(
-tmp363
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6093(line=226, offs=12) -- 6120(line=226, offs=39)
-*/
-ATSINSmove(tmp362, is_prime_50(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6093(line=226, offs=12) -- 6120(line=226, offs=39)
-*/
-ATSINSmove(tmp362, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6090(line=226, offs=9) -- 6262(line=232, offs=27)
-*/
-ATSif(
-tmp362
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6140(line=227, offs=14) -- 6147(line=227, offs=21)
-*/
-ATSINSmove(tmp370, atspre_g1int_div_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6140(line=227, offs=14) -- 6151(line=227, offs=25)
-*/
-ATSINSmove(tmp367, ATSLIB_056_prelude__gt_g1int_int__6__9(tmp370, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6137(line=227, offs=11) -- 6222(line=230, offs=14)
-*/
-ATSif(
-tmp367
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6178(line=228, offs=22) -- 6189(line=228, offs=33)
-*/
-ATSINSmove(tmp372, rip_125(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6173(line=228, offs=17) -- 6193(line=228, offs=37)
-*/
-ATSINSmove(tmp371, loop_143(tmp372, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6169(line=228, offs=13) -- 6193(line=228, offs=37)
-*/
-ATSINSmove(tmpret357, atspre_g0int_add_int(ATSPMVi0nt(1), tmp371)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6221(line=230, offs=13) -- 6222(line=230, offs=14)
-*/
-ATSINSmove(tmpret357, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6254(line=232, offs=19) -- 6261(line=232, offs=26)
-*/
-ATSINSmove(tmp373, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6246(line=232, offs=11) -- 6262(line=232, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp373) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_143) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret357) ;
-} /* end of [loop_143] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$70$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4636)
-tmparg = S2Evar(tk(4636))
-tmpsub = Some(tk(4636) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__70__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp150__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp150__4, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret149__4, atspre_g1int_gte_int(arg0, tmp150__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret149__4) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__70__4] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$22(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__22(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__22, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__22, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__22, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__22, atspre_g0int_eq_int(arg0, tmp18__22)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__22) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__22] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$9(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__9, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__9, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__9, atspre_g1int_gt_int(arg0, tmp11__9)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__9) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__9] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6312(line=237, offs=23) -- 6602(line=249, offs=8)
-*/
-/*
-local: 
-global: radical_ats$147$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-radical_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret374, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref375, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6300(line=237, offs=11) -- 6602(line=249, offs=8)
-*/
-ATSINSflab(__patsflab_radical_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6320(line=238, offs=3) -- 6602(line=249, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6337(line=239, offs=7) -- 6338(line=239, offs=8)
-*/
-ATSINSlab(__atstmplab33):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6313(line=237, offs=24) -- 6314(line=237, offs=25)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab35) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6338(line=239, offs=8) -- 6338(line=239, offs=8)
-*/
-ATSINSlab(__atstmplab34):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6342(line=239, offs=12) -- 6343(line=239, offs=13)
-*/
-ATSINSmove(tmpret374, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6351(line=240, offs=8) -- 6351(line=240, offs=8)
-*/
-ATSINSlab(__atstmplab35):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6356(line=240, offs=13) -- 6602(line=249, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6370(line=241, offs=11) -- 6371(line=241, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref375) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6390(line=241, offs=31) -- 6405(line=241, offs=46)
-*/
-ATSINSmove(tmpref375, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6584(line=248, offs=7) -- 6593(line=248, offs=16)
-*/
-ATSINSmove(tmpret374, product_148(tmpref375)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6356(line=240, offs=13) -- 6602(line=249, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret374) ;
-} /* end of [radical_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6424(line=243, offs=11) -- 6570(line=246, offs=34)
-*/
-/*
-local: product_148$0(level=1)
-global: product_148$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-product_148(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret376, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp377, atstype_boxed) ;
-ATStmpdec(tmp378, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp379, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp380, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6424(line=243, offs=11) -- 6570(line=246, offs=34)
-*/
-ATSINSflab(__patsflab_product_148):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6475(line=244, offs=15) -- 6478(line=244, offs=18)
-*/
-ATSINSmove_llazyeval(tmp377, atstype_boxed, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6469(line=244, offs=9) -- 6570(line=246, offs=34)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6494(line=245, offs=13) -- 6517(line=245, offs=36)
-*/
-ATSINSlab(__atstmplab36):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6475(line=244, offs=15) -- 6478(line=244, offs=18)
-*/
-ATSifthen(ATSCKptrisnull(tmp377)) { ATSINSgoto(__atstmplab39) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6517(line=245, offs=36) -- 6517(line=245, offs=36)
-*/
-ATSINSlab(__atstmplab37):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6511(line=245, offs=30) -- 6512(line=245, offs=31)
-*/
-ATSINSmove(tmp378, ATSSELcon(tmp377, postiats_tysum_1, atslab__0)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6514(line=245, offs=33) -- 6516(line=245, offs=35)
-*/
-ATSINSmove(tmp379, ATSSELcon(tmp377, postiats_tysum_1, atslab__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6494(line=245, offs=13) -- 6536(line=245, offs=55)
-*/
-ATSINSfreecon(tmp377) ;
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6525(line=245, offs=44) -- 6535(line=245, offs=54)
-*/
-ATSINSmove(tmp380, product_148(tmp379)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6521(line=245, offs=40) -- 6535(line=245, offs=54)
-*/
-ATSINSmove(tmpret376, atspre_g0int_mul_int(tmp378, tmp380)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6549(line=246, offs=13) -- 6565(line=246, offs=29)
-*/
-ATSINSlab(__atstmplab38):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6475(line=244, offs=15) -- 6478(line=244, offs=18)
-*/
-#if(0)
-ATSifthen(ATSCKptriscons(tmp377)) { ATSINSdeadcode_fail() ; } ;
-#endif
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6565(line=246, offs=29) -- 6565(line=246, offs=29)
-*/
-ATSINSlab(__atstmplab39):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6569(line=246, offs=33) -- 6570(line=246, offs=34)
-*/
-ATSINSmove(tmpret376, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret376) ;
-} /* end of [product_148] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6607(line=251, offs=4) -- 7156(line=265, offs=8)
-*/
-/*
-local: 
-global: totient_149$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_149(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret381, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref386, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref387, postiats_tyrec_0) ;
-ATStmpdec(tmpref388, postiats_tyrec_0) ;
-ATStmpdec(tmp406, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6607(line=251, offs=4) -- 7156(line=265, offs=8)
-*/
-ATSINSflab(__patsflab_totient_149):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6640(line=252, offs=3) -- 7156(line=265, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6657(line=253, offs=7) -- 6658(line=253, offs=8)
-*/
-ATSINSlab(__atstmplab40):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6615(line=251, offs=12) -- 6616(line=251, offs=13)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab42) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6658(line=253, offs=8) -- 6658(line=253, offs=8)
-*/
-ATSINSlab(__atstmplab41):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6662(line=253, offs=12) -- 6663(line=253, offs=13)
-*/
-ATSINSmove(tmpret381, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6671(line=254, offs=8) -- 6671(line=254, offs=8)
-*/
-ATSINSlab(__atstmplab42):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6676(line=254, offs=13) -- 7156(line=265, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6890(line=260, offs=11) -- 6891(line=260, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref386) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6910(line=260, offs=31) -- 6925(line=260, offs=46)
-*/
-ATSINSmove(tmpref386, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6937(line=261, offs=11) -- 6947(line=261, offs=21)
-*/
-/*
-ATSINStmpdec(tmpref387) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6950(line=261, offs=24) -- 6976(line=261, offs=50)
-*/
-ATSINSmove_fltrec_beg()
-ATSINSstore_fltrec_ofs(tmpref387, postiats_tyrec_0, atslab__first, ATSPMVi0nt(1)) ;
-ATSINSstore_fltrec_ofs(tmpref387, postiats_tyrec_0, atslab__second, ATSPMVi0nt(1)) ;
-ATSINSmove_fltrec_end()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6994(line=262, offs=11) -- 6995(line=262, offs=12)
-*/
-/*
-ATSINStmpdec(tmpref388) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6998(line=262, offs=15) -- 7085(line=262, offs=102)
-*/
-ATSINSmove(tmpref388, ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152__1(tmpref386, tmpref387, ATSPMVcfunlab(1, __patsfun_156, ()))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7116(line=264, offs=17) -- 7137(line=264, offs=38)
-*/
-ATSINSmove(tmp406, atspre_g0int_mul_int(arg0, ATSSELfltrec(tmpref388, postiats_tyrec_0, atslab__first))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7106(line=264, offs=7) -- 7148(line=264, offs=49)
-*/
-ATSINSmove(tmpret381, atspre_g0int_div_int(tmp406, ATSSELfltrec(tmpref388, postiats_tyrec_0, atslab__second))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6676(line=254, offs=13) -- 7156(line=265, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret381) ;
-} /* end of [totient_149] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6749(line=257, offs=10) -- 6872(line=258, offs=80)
-*/
-/*
-local: 
-global: adjust_contents_150$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-postiats_tyrec_0
-adjust_contents_150(postiats_tyrec_0 arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret382, postiats_tyrec_0) ;
-ATStmpdec(tmp383, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp384, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp385, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6749(line=257, offs=10) -- 6872(line=258, offs=80)
-*/
-ATSINSflab(__patsflab_adjust_contents_150):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6831(line=258, offs=39) -- 6836(line=258, offs=44)
-*/
-ATSINSmove(tmp384, atspre_g0int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6812(line=258, offs=20) -- 6837(line=258, offs=45)
-*/
-ATSINSmove(tmp383, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__first), tmp384)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6848(line=258, offs=56) -- 6870(line=258, offs=78)
-*/
-ATSINSmove(tmp385, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__second), arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6801(line=258, offs=9) -- 6872(line=258, offs=80)
-*/
-ATSINSmove_fltrec_beg()
-ATSINSstore_fltrec_ofs(tmpret382, postiats_tyrec_0, atslab__first, tmp383) ;
-ATSINSstore_fltrec_ofs(tmpret382, postiats_tyrec_0, atslab__second, tmp385) ;
-ATSINSmove_fltrec_end()
-ATSfunbody_end()
-ATSreturn(tmpret382) ;
-} /* end of [adjust_contents_150] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 29943(line=1864, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-local: 
-global: stream_vt_foldleft_cloptr$152$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = res(8326), a(8327)
-tmparg = S2Evar(res(8326)); S2Evar(a(8327))
-tmpsub = None()
-*/
-atstyvar_type(res)
-ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152(atstkind_type(atstype_ptrk) arg0, atstyvar_type(res) arg1, atstype_cloptr arg2)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret389, atstyvar_type(res)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29915(line=1863, offs=1) -- 30423(line=1895, offs=2)
-*/
-ATSINSflab(__patsflab_stream_vt_foldleft_cloptr):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 29984(line=1865, offs=23)
-*/
-ATSINSmove(tmpret389, ATSfunclo_fun(PMVd2vfunlab(d2v=loop$4479(1), flab=loop_153$0(level=1)), (atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr), atstyvar_type(res))(arg0, arg1, arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret389) ;
-} /* end of [ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152] */
-#endif // end of [TEMPLATE]
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
-*/
-/*
-local: loop_153$0(level=1)
-global: loop_153$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstyvar_type(res)
-loop_153__153(atstkind_type(atstype_ptrk) arg0, atstyvar_type(res) arg1, atstype_cloptr arg2)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, atstyvar_type(res)) ;
-ATStmpdec(apy2, atstype_cloptr) ;
-ATStmpdec(tmpret390, atstyvar_type(res)) ;
-ATStmpdec(tmpref391, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp392, atstype_boxed) ;
-// ATStmpdec_void(tmp395) ;
-ATStmpdec(tmp396, atstyvar_type(res)) ;
-ATStmpdec(tmp397, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
-*/
-ATSINSflab(__patsflab_loop_153):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30088(line=1876, offs=7) -- 30094(line=1876, offs=13)
-*/
-/*
-ATSINStmpdec(tmpref391) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30097(line=1876, offs=16) -- 30100(line=1876, offs=19)
-*/
-ATSINSmove_llazyeval(tmpref391, atstype_boxed, arg0) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-ATSINSmove(tmp392, tmpref391) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30107(line=1879, offs=1) -- 30367(line=1891, offs=6)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30134(line=1882, offs=3) -- 30155(line=1883, offs=7)
-*/
-ATSINSlab(__atstmplab43):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-ATSifthen(ATSCKptriscons(tmp392)) { ATSINSgoto(__atstmplab46) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30155(line=1883, offs=7) -- 30155(line=1883, offs=7)
-*/
-ATSINSlab(__atstmplab44):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30167(line=1885, offs=5) -- 30199(line=1885, offs=37)
-*/
-ATSINSmove_void(tmp395, atspre_cloptr_free(ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), arg2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30201(line=1885, offs=39) -- 30204(line=1885, offs=42)
-*/
-ATSINSmove(tmpret390, arg1) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30240(line=1887, offs=3) -- 30269(line=1888, offs=14)
-*/
-ATSINSlab(__atstmplab45):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-#if(0)
-ATSifthen(ATSCKptrisnull(tmp392)) { ATSINSdeadcode_fail() ; } ;
-#endif
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30269(line=1888, offs=14) -- 30269(line=1888, offs=14)
-*/
-ATSINSlab(__atstmplab46):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30291(line=1889, offs=15) -- 30304(line=1889, offs=28)
-*/
-ATSINSmove(tmp396, ATSfunclo_clo(ATSPMVrefarg0(arg2), (atstype_cloptr, atstyvar_type(res), atsrefarg1_type(atstyvar_type(a))), atstyvar_type(res))(ATSPMVrefarg0(arg2), arg1, ATSPMVrefarg1(ATSPMVptrof(ATSSELcon(tmp392, postiats_tysum_3, atslab__0))))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30319(line=1890, offs=15) -- 30322(line=1890, offs=18)
-*/
-ATSINSmove(tmp397, ATSSELcon(tmp392, postiats_tysum_3, atslab__1)) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30326(line=1890, offs=22) -- 30338(line=1890, offs=34)
-*/
-ATSINSfreecon(tmpref391) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30341(line=1890, offs=37) -- 30361(line=1890, offs=57)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp397) ;
-ATSINSmove_tlcal(apy1, tmp396) ;
-ATSINSmove_tlcal(apy2, arg2) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSargmove_tlcal(arg2, apy2) ;
-ATSINSfgoto(__patsflab_loop_153) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret390) ;
-} /* end of [loop_153__153] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 29943(line=1864, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-local: 
-global: stream_vt_foldleft_cloptr$152$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = res(8326), a(8327)
-tmparg = S2Evar(res(8326)); S2Evar(a(8327))
-tmpsub = Some(res(8326) -> S2EVar(5929); a(8327) -> S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int)))
-*/
-postiats_tyrec_0
-ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152__1(atstkind_type(atstype_ptrk) arg0, postiats_tyrec_0 arg1, atstype_cloptr arg2)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret389__1, postiats_tyrec_0) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29915(line=1863, offs=1) -- 30423(line=1895, offs=2)
-*/
-ATSINSflab(__patsflab_stream_vt_foldleft_cloptr):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 29984(line=1865, offs=23)
-*/
-ATSINSmove(tmpret389__1, loop_153__153__1(arg0, arg1, arg2)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret389__1) ;
-} /* end of [ATSLIB_056_prelude__stream_vt_foldleft_cloptr__152__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
-*/
-/*
-local: loop_153$1(level=2)
-global: loop_153$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-postiats_tyrec_0
-loop_153__153__1(atstkind_type(atstype_ptrk) arg0, postiats_tyrec_0 arg1, atstype_cloptr arg2)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, postiats_tyrec_0) ;
-ATStmpdec(apy2, atstype_cloptr) ;
-ATStmpdec(tmpret390__1, postiats_tyrec_0) ;
-ATStmpdec(tmpref391__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp392__1, atstype_boxed) ;
-// ATStmpdec_void(tmp395__1) ;
-ATStmpdec(tmp396__1, postiats_tyrec_0) ;
-ATStmpdec(tmp397__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
-*/
-ATSINSflab(__patsflab_loop_153):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30088(line=1876, offs=7) -- 30094(line=1876, offs=13)
-*/
-/*
-ATSINStmpdec(tmpref391) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30097(line=1876, offs=16) -- 30100(line=1876, offs=19)
-*/
-ATSINSmove_llazyeval(tmpref391__1, atstype_boxed, arg0) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-ATSINSmove(tmp392__1, tmpref391__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30107(line=1879, offs=1) -- 30367(line=1891, offs=6)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30134(line=1882, offs=3) -- 30155(line=1883, offs=7)
-*/
-ATSINSlab(__atstmplab43):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-ATSifthen(ATSCKptriscons(tmp392__1)) { ATSINSgoto(__atstmplab46) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30155(line=1883, offs=7) -- 30155(line=1883, offs=7)
-*/
-ATSINSlab(__atstmplab44):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30167(line=1885, offs=5) -- 30199(line=1885, offs=37)
-*/
-ATSINSmove_void(tmp395__1, atspre_cloptr_free(ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), arg2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30201(line=1885, offs=39) -- 30204(line=1885, offs=42)
-*/
-ATSINSmove(tmpret390__1, arg1) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30240(line=1887, offs=3) -- 30269(line=1888, offs=14)
-*/
-ATSINSlab(__atstmplab45):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
-*/
-#if(0)
-ATSifthen(ATSCKptrisnull(tmp392__1)) { ATSINSdeadcode_fail() ; } ;
-#endif
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30269(line=1888, offs=14) -- 30269(line=1888, offs=14)
-*/
-ATSINSlab(__atstmplab46):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30291(line=1889, offs=15) -- 30304(line=1889, offs=28)
-*/
-ATSINSmove(tmp396__1, ATSfunclo_clo(ATSPMVrefarg0(arg2), (atstype_cloptr, postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))), postiats_tyrec_0)(ATSPMVrefarg0(arg2), arg1, ATSPMVrefarg1(ATSPMVptrof(ATSSELcon(tmp392__1, postiats_tysum_1, atslab__0))))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30319(line=1890, offs=15) -- 30322(line=1890, offs=18)
-*/
-ATSINSmove(tmp397__1, ATSSELcon(tmp392__1, postiats_tysum_1, atslab__1)) ;
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30326(line=1890, offs=22) -- 30338(line=1890, offs=34)
-*/
-ATSINSfreecon(tmpref391__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30341(line=1890, offs=37) -- 30361(line=1890, offs=57)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp397__1) ;
-ATSINSmove_tlcal(apy1, tmp396__1) ;
-ATSINSmove_tlcal(apy2, arg2) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSargmove_tlcal(arg2, apy2) ;
-ATSINSfgoto(__patsflab_loop_153) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret390__1) ;
-} /* end of [loop_153__153__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7039(line=262, offs=56) -- 7084(line=262, offs=101)
-*/
-/*
-local: adjust_contents_150$0(level=1)
-global: adjust_contents_150$0(level=1), __patsfun_156$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-postiats_tyrec_0
-__patsfun_156(postiats_tyrec_0 arg0, atsrefarg1_type(atstkind_t0ype(atstype_int)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret405, postiats_tyrec_0) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7039(line=262, offs=56) -- 7084(line=262, offs=101)
-*/
-ATSINSflab(__patsflab___patsfun_156):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7058(line=262, offs=75) -- 7084(line=262, offs=101)
-*/
-ATSINSmove(tmpret405, adjust_contents_150(arg0, ATSderef(arg1, atstkind_t0ype(atstype_int)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret405) ;
-} /* end of [__patsfun_156] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7180(line=267, offs=23) -- 7536(line=281, offs=6)
-*/
-/*
-local: totient_149$0(level=0)
-global: totient_149$0(level=0), totient_sum$157$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret407, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7168(line=267, offs=11) -- 7536(line=281, offs=6)
-*/
-ATSINSflab(__patsflab_totient_sum):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7188(line=268, offs=3) -- 7536(line=281, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7520(line=280, offs=5) -- 7530(line=280, offs=15)
-*/
-ATSINSmove(tmpret407, loop_158(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7188(line=268, offs=3) -- 7536(line=281, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret407) ;
-} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7200(line=269, offs=9) -- 7510(line=278, offs=40)
-*/
-/*
-local: totient_149$0(level=0), loop_158$0(level=1)
-global: totient_149$0(level=0), loop_158$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_158(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret408, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp409, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref412, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp413, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref414, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp419, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp424, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7200(line=269, offs=9) -- 7510(line=278, offs=40)
-*/
-ATSINSflab(__patsflab_loop_158):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7303(line=270, offs=10) -- 7312(line=270, offs=19)
-*/
-ATSINSmove(tmp409, ATSLIB_056_prelude__lt_g1int_int__52__3(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7300(line=270, offs=7) -- 7510(line=278, offs=40)
-*/
-ATSif(
-tmp409
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7326(line=271, offs=9) -- 7459(line=276, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7344(line=272, offs=15) -- 7345(line=272, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref412) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7353(line=272, offs=24) -- 7358(line=272, offs=29)
-*/
-ATSINSmove(tmp413, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7348(line=272, offs=19) -- 7366(line=272, offs=37)
-*/
-ATSINSmove(tmpref412, loop_158(tmp413, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7381(line=273, offs=15) -- 7382(line=273, offs=16)
-*/
-/*
-ATSINStmpdec(tmpref414) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7412(line=273, offs=46) -- 7421(line=273, offs=55)
-*/
-ATSINSmove(tmp419, totient_149(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7385(line=273, offs=19) -- 7424(line=273, offs=58)
-*/
-ATSINSmove(tmpref414, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160__1(tmpref412, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp419))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7446(line=275, offs=11) -- 7447(line=275, offs=12)
-*/
-ATSINSmove(tmpret408, tmpref414) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7326(line=271, offs=9) -- 7459(line=276, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7479(line=278, offs=9) -- 7510(line=278, offs=40)
-*/
-ATSINSmove(tmp424, totient_149(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7479(line=278, offs=9) -- 7510(line=278, offs=40)
-*/
-ATSINSmove(tmpret408, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__2(ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp424))) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret408) ;
-} /* end of [loop_158] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = Some(tk(4627) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110__3, atspre_g1int_lt_int(arg0, tmp111__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110__3) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52__3] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$160$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret415, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp416) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp416, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret415, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret415) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$160$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret415__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp416__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp416__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret415__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret415__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__160__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$45$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__2(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret96__2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp97__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp98__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp97__2, ATSLIB_056_prelude__ptr_alloc__1__5()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp98__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp97__2, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret96__2, tmp97__2) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret96__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$5(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__5()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__5, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__5) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__5] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7560(line=283, offs=23) -- 7577(line=284, offs=12)
-*/
-/*
-local: totient_149$0(level=0)
-global: totient_149$0(level=0), totient_ats$164$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_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/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7548(line=283, offs=11) -- 7578(line=284, offs=13)
-*/
-ATSINSflab(__patsflab_totient_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7568(line=284, offs=3) -- 7577(line=284, offs=12)
-*/
-ATSINSmove(tmpret425, totient_149(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret425) ;
-} /* end of [totient_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7601(line=286, offs=22) -- 7634(line=287, offs=25)
-*/
-/*
-local: jacobi_88$0(level=0)
-global: exp_5$0(level=0), sqrt_int_48$0(level=0), is_prime_50$0(level=0), div_gt_zero_87$0(level=0), jacobi_88$0(level=0), jacobi_ats$165$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-jacobi_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret426, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7590(line=286, offs=11) -- 7634(line=287, offs=25)
-*/
-ATSINSflab(__patsflab_jacobi_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7612(line=287, offs=3) -- 7634(line=287, offs=25)
-*/
-ATSINSmove(tmpret426, jacobi_88(arg0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg1))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret426) ;
+** The C code is generated by [ATS/Postiats-0-3-13]
+**
+*/
+
+/*
+** 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)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/math.cats"
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.sats: 1(line=1, offs=1) -- 63(line=1, offs=63)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.sats: 64(line=2, offs=1) -- 95(line=2, offs=32)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+typedef
+ATSstruct {
+atstkind_t0ype(atstype_int) atslab__first ;
+atstkind_t0ype(atstype_int) atslab__second ;
+} postiats_tyrec_0 ;
+typedef
+ATSstruct {
+#if(0)
+int contag ;
+#endif
+atstkind_t0ype(atstype_int) atslab__0 ;
+atstkind_type(atstype_ptrk) atslab__1 ;
+} postiats_tysum_1 ;
+typedef
+ATSstruct {
+#if(0)
+int contag ;
+#endif
+atstyvar_type(a) atslab__0 ;
+atstkind_type(atstype_ptrk) atslab__1 ;
+} postiats_tysum_2 ;
+typedef
+ATSstruct {
+#if(0)
+int contag ;
+#endif
+atstyvar_type(a) atslab__0 ;
+atstkind_type(atstype_ptrk) atslab__1 ;
+} postiats_tysum_3 ;
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_gt_int)
+ATSdyncst_mac(atspre_g1int_half_int)
+ATSdyncst_mac(atspre_g0int_mod_int)
+ATSdyncst_mac(atspre_g0int2int_int_int)
+ATSdyncst_mac(atspre_g0int_eq_int)
+ATSdyncst_mac(atspre_g0int_mul_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_cmp_int)
+ATSdyncst_mac(atspre_g0int_lt_int)
+ATSdyncst_mac(atspre_g1int_neg_int)
+ATSdyncst_mac(atspre_g0int_gt_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_clear)
+ATSdyncst_mac(atspre_ptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atspre_g0float2int_double_int)
+ATSdyncst_mac(atslib_libats_libc_sqrt_double)
+ATSdyncst_mac(atspre_g0int2float_int_double)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atspre_g1int_neq_int)
+ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int)) ;
+ATSdyncst_mac(atspre_g0int_div_int)
+ATSdyncst_mac(atspre_g1int_gte_int)
+ATSdyncst_mac(atspre_g1int_div_int)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atspre_g0int_half_int)
+ATSdyncst_mac(atspre_g1int_mul_int)
+ATSdyncst_mac(atspre_g0int_neg_int)
+ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors, (atstkind_t0ype(atstype_int)), atstkind_type(atstype_ptrk)) ;
+ATSdyncst_mac(atspre_g0int_add_int)
+ATSdyncst_extfun(sum_divisors_ats, (atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int)) ;
+ATSdyncst_mac(atspre_g0int_neq_int)
+ATSdyncst_extfun(_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors, (atstkind_t0ype(atstype_int)), atstkind_type(atstype_ptrk)) ;
+ATSdyncst_mac(atspre_g0int_sub_int)
+ATSdyncst_mac(atspre_cloptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+ATSextern()
+atsvoid_t0ype
+the_atsexncon_initize
+(
+  atstype_exnconptr d2c, atstype_string exnmsg
+) ;
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+/*
+exnconlst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+/*
+assumelst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
+/*
+assumelst-declaration(end)
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_0(atstkind_t0ype(atstype_uint)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__1() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4(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__4__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10(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__10__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+big_exp_15(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16(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__16__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21(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_g0int_int__21__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25(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_g0int_int__25__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__2() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__3() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__4() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_46(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_48(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_49(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__50(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__50__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60(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__60__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstype_boxed
+__patsfun_68(atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_69(atstype_bool) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_70(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71(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__71__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_77(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_78(atstkind_type(atstype_ptrk), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_79(atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_80(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_81(atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_82(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_84(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_85(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+div_gt_zero_86(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+jacobi_87(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+legendre_88(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_mod_prime_89(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__11(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+get_multiplicity_97(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_98(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__12(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+jacobi2_102(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__13(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__14(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__15(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__16(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__17(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSLIB_056_prelude__stream_vt_length__111(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_112__112(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+ATSLIB_056_prelude__stream_vt_length__111__1(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_112__112__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_116(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__18(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__19(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__20(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+rip_124(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g0int_int__125(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_g0int_int__125__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_131(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_133(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_134(atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_135(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__21(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_138(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_139(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_140(atstype_bool) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_142(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__22(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+radical_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+product_147(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_148(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+postiats_tyrec_0
+adjust_contents_149(postiats_tyrec_0, atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstyvar_type(res)
+ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151(atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+ATSstatic()
+atstyvar_type(res)
+loop_152__152(atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr) ;
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+postiats_tyrec_0
+ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151__1(atstkind_type(atstype_ptrk), postiats_tyrec_0, atstype_cloptr) ;
+
+ATSstatic()
+postiats_tyrec_0
+loop_152__152__1(atstkind_type(atstype_ptrk), postiats_tyrec_0, atstype_cloptr) ;
+
+ATSstatic()
+postiats_tyrec_0
+__patsfun_155(postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))) ;
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_157(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__2(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__5() ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+jacobi_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSclosurerize_beg(__patsfun_68, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_68__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_68__cfun
+(
+__patsfun_68__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_68(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_68__closureinit
+(
+__patsfun_68__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_68__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_68__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_68__closureinit(ATS_MALLOC(sizeof(__patsfun_68__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_69, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_69__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_69__cfun
+(
+__patsfun_69__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_69(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_69__closureinit
+(
+__patsfun_69__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_69__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_69__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_69__closureinit(ATS_MALLOC(sizeof(__patsfun_69__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_77, (atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+atstkind_type(atstype_ptrk) env1 ;
+} __patsfun_77__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_77__cfun
+(
+__patsfun_77__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_77(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_77__closureinit
+(
+__patsfun_77__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->env1 = env1 ;
+p_cenv->cfun = __patsfun_77__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_77__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1
+)
+{
+return __patsfun_77__closureinit(ATS_MALLOC(sizeof(__patsfun_77__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_78, (atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_type(atstype_ptrk) env0 ;
+} __patsfun_78__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_78__cfun
+(
+__patsfun_78__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_78(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_78__closureinit
+(
+__patsfun_78__closure_t0ype *p_cenv, atstkind_type(atstype_ptrk) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_78__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_78__closurerize
+(
+atstkind_type(atstype_ptrk) env0
+)
+{
+return __patsfun_78__closureinit(ATS_MALLOC(sizeof(__patsfun_78__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_79, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_79__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_79__cfun
+(
+__patsfun_79__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_79(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_79__closureinit
+(
+__patsfun_79__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_79__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_79__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_79__closureinit(ATS_MALLOC(sizeof(__patsfun_79__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_80, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_80__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_80__cfun
+(
+__patsfun_80__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_80(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_80__closureinit
+(
+__patsfun_80__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_80__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_80__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_80__closureinit(ATS_MALLOC(sizeof(__patsfun_80__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_81, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_81__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_81__cfun
+(
+__patsfun_81__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_81(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_81__closureinit
+(
+__patsfun_81__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_81__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_81__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_81__closureinit(ATS_MALLOC(sizeof(__patsfun_81__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_82, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_82__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_82__cfun
+(
+__patsfun_82__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_82(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_82__closureinit
+(
+__patsfun_82__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_82__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_82__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_82__closureinit(ATS_MALLOC(sizeof(__patsfun_82__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_84, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+atstkind_t0ype(atstype_int) env1 ;
+atstkind_type(atstype_ptrk) env2 ;
+} __patsfun_84__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_84__cfun
+(
+__patsfun_84__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_84(p_cenv->env0, p_cenv->env1, p_cenv->env2, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_84__closureinit
+(
+__patsfun_84__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->env1 = env1 ;
+p_cenv->env2 = env2 ;
+p_cenv->cfun = __patsfun_84__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_84__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
+)
+{
+return __patsfun_84__closureinit(ATS_MALLOC(sizeof(__patsfun_84__closure_t0ype)), env0, env1, env2) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_85, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+atstkind_t0ype(atstype_int) env1 ;
+atstkind_type(atstype_ptrk) env2 ;
+} __patsfun_85__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_85__cfun
+(
+__patsfun_85__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_85(p_cenv->env0, p_cenv->env1, p_cenv->env2, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_85__closureinit
+(
+__patsfun_85__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->env1 = env1 ;
+p_cenv->env2 = env2 ;
+p_cenv->cfun = __patsfun_85__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_85__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2
+)
+{
+return __patsfun_85__closureinit(ATS_MALLOC(sizeof(__patsfun_85__closure_t0ype)), env0, env1, env2) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_133, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_133__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_133__cfun
+(
+__patsfun_133__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_133(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_133__closureinit
+(
+__patsfun_133__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_133__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_133__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_133__closureinit(ATS_MALLOC(sizeof(__patsfun_133__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_134, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_134__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_134__cfun
+(
+__patsfun_134__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_134(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_134__closureinit
+(
+__patsfun_134__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_134__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_134__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_134__closureinit(ATS_MALLOC(sizeof(__patsfun_134__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_135, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_135__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_135__cfun
+(
+__patsfun_135__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_135(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_135__closureinit
+(
+__patsfun_135__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_135__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_135__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_135__closureinit(ATS_MALLOC(sizeof(__patsfun_135__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_138, (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_138__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_138__cfun
+(
+__patsfun_138__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_138(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_138__closureinit
+(
+__patsfun_138__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_138__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_138__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+return __patsfun_138__closureinit(ATS_MALLOC(sizeof(__patsfun_138__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_139, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_139__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_139__cfun
+(
+__patsfun_139__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_139(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_139__closureinit
+(
+__patsfun_139__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_139__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_139__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_139__closureinit(ATS_MALLOC(sizeof(__patsfun_139__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_140, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_140__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_140__cfun
+(
+__patsfun_140__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_140(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_140__closureinit
+(
+__patsfun_140__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_140__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_140__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_140__closureinit(ATS_MALLOC(sizeof(__patsfun_140__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_155, (), (postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))), postiats_tyrec_0)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_155__closure_t0ype ;
+ATSstatic()
+postiats_tyrec_0
+__patsfun_155__cfun
+(
+__patsfun_155__closure_t0ype *p_cenv, postiats_tyrec_0 arg0, atsrefarg1_type(atstkind_t0ype(atstype_int)) arg1
+)
+{
+ATSFCreturn(__patsfun_155(arg0, arg1)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_155__closureinit
+(
+__patsfun_155__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_155__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_155__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_155__closureinit(ATS_MALLOC(sizeof(__patsfun_155__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 414(line=12, offs=4) -- 587(line=19, offs=6)
+*/
+/*
+local: 
+global: fib_gmp_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_0(atstkind_t0ype(atstype_uint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp4) ;
+// ATStmpdec_void(tmp5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 414(line=12, offs=4) -- 587(line=19, offs=6)
+*/
+ATSINSflab(__patsflab_fib_gmp_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 451(line=13, offs=3) -- 587(line=19, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 463(line=14, offs=9) -- 464(line=14, offs=10)
+*/
+/*
+ATSINStmpdec(tmpref1) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 467(line=14, offs=13) -- 478(line=14, offs=24)
+*/
+ATSINSmove(tmpref1, ATSLIB_056_prelude__ptr_alloc__1__1()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 492(line=15, offs=14) -- 513(line=15, offs=35)
+*/
+ATSINSmove_void(tmp4, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 527(line=16, offs=14) -- 555(line=16, offs=42)
+*/
+ATSINSmove_void(tmp5, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 565(line=18, offs=5) -- 580(line=18, offs=20)
+*/
+ATSINSmove(tmpret0, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 451(line=13, offs=3) -- 587(line=19, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [fib_gmp_0] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2EVar(5559))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 764(line=24, offs=5) -- 1203(line=45, offs=10)
+*/
+/*
+local: exp_3$0(level=0)
+global: exp_3$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_3(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(tmpret6, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref12, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref13, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp14, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref20, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp21, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 764(line=24, offs=5) -- 1203(line=45, offs=10)
+*/
+ATSINSflab(__patsflab_exp_3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 814(line=25, offs=3) -- 1203(line=45, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 831(line=26, offs=7) -- 832(line=26, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 783(line=24, offs=24) -- 784(line=24, offs=25)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 832(line=26, offs=8) -- 832(line=26, offs=8)
+*/
+ATSINSlab(__atstmplab1):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 836(line=26, offs=12) -- 837(line=26, offs=13)
+*/
+ATSINSmove(tmpret6, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 845(line=27, offs=8) -- 845(line=27, offs=8)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 874(line=29, offs=12) -- 879(line=29, offs=17)
+*/
+ATSINSmove(tmp7, ATSLIB_056_prelude__gt_g1int_int__4__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 871(line=29, offs=9) -- 1193(line=44, offs=12)
+*/
+ATSif(
+tmp7
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 895(line=30, offs=11) -- 1168(line=42, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 915(line=31, offs=17) -- 917(line=31, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref12) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 920(line=31, offs=22) -- 926(line=31, offs=28)
+*/
+ATSINSmove(tmpref12, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 944(line=32, offs=17) -- 946(line=32, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref13) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 949(line=32, offs=22) -- 954(line=32, offs=27)
+*/
+ATSINSmove(tmpref13, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 983(line=34, offs=16) -- 989(line=34, offs=22)
+*/
+ATSINSmove(tmp14, ATSLIB_056_prelude__eq_g0int_int__10__1(tmpref13, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 980(line=34, offs=13) -- 1154(line=41, offs=18)
+*/
+ATSif(
+tmp14
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1013(line=35, offs=19) -- 1018(line=35, offs=24)
+*/
+ATSINSmove(tmp19, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1009(line=35, offs=15) -- 1023(line=35, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp19) ;
+ATSINSmove_tlcal(apy1, tmpref12) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_3) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1055(line=37, offs=15) -- 1154(line=41, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1079(line=38, offs=21) -- 1080(line=38, offs=22)
+*/
+/*
+ATSINStmpdec(tmpref20) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1091(line=38, offs=33) -- 1096(line=38, offs=38)
+*/
+ATSINSmove(tmp22, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1087(line=38, offs=29) -- 1101(line=38, offs=43)
+*/
+ATSINSmove(tmp21, exp_3(tmp22, tmpref12)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1083(line=38, offs=25) -- 1101(line=38, offs=43)
+*/
+ATSINSmove(tmpref20, atspre_g0int_mul_int(arg0, tmp21)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1135(line=40, offs=17) -- 1136(line=40, offs=18)
+*/
+ATSINSmove(tmpret6, tmpref20) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1055(line=37, offs=15) -- 1154(line=41, offs=18)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 895(line=30, offs=11) -- 1168(line=42, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1192(line=44, offs=11) -- 1193(line=44, offs=12)
+*/
+ATSINSmove(tmpret6, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret6) ;
+} /* end of [exp_3] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4637))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8, PMVtmpltcst(g1int_gt<S2Evar(tk(4637))>)(arg0, tmp9)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__1, atspre_g1int_gt_int(arg0, tmp9__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4628))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15, PMVtmpltcst(g0int_eq<S2Evar(tk(4628))>)(arg0, tmp16)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__1, atspre_g0int_eq_int(arg0, tmp16__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1241(line=48, offs=5) -- 1849(line=74, offs=39)
+*/
+/*
+local: big_exp_15$0(level=0)
+global: big_exp_15$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+big_exp_15(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret23, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp29, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp48, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref51, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref52, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp53, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref56, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref76, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref82, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref83, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp88) ;
+// ATStmpdec_void(tmp91) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1241(line=48, offs=5) -- 1849(line=74, offs=39)
+*/
+ATSINSflab(__patsflab_big_exp_15):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1304(line=49, offs=6) -- 1328(line=49, offs=30)
+*/
+ATSINSmove(tmp29, ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(ATSPMVrefarg0(arg0), ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1304(line=49, offs=6) -- 1332(line=49, offs=34)
+*/
+ATSINSmove(tmp24, ATSLIB_056_prelude__eq_g1int_int__16__1(tmp29, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1301(line=49, offs=3) -- 1849(line=74, offs=39)
+*/
+ATSif(
+tmp24
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1342(line=50, offs=5) -- 1343(line=50, offs=6)
+*/
+ATSINSmove(tmpret23, arg0) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1358(line=52, offs=8) -- 1363(line=52, offs=13)
+*/
+ATSINSmove(tmp48, ATSLIB_056_prelude__gt_g1int_int__4__2(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1355(line=52, offs=5) -- 1849(line=74, offs=39)
+*/
+ATSif(
+tmp48
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1375(line=53, offs=7) -- 1801(line=72, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1391(line=54, offs=13) -- 1393(line=54, offs=15)
+*/
+/*
+ATSINStmpdec(tmpref51) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1396(line=54, offs=18) -- 1402(line=54, offs=24)
+*/
+ATSINSmove(tmpref51, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1416(line=55, offs=13) -- 1418(line=55, offs=15)
+*/
+/*
+ATSINStmpdec(tmpref52) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1421(line=55, offs=18) -- 1426(line=55, offs=23)
+*/
+ATSINSmove(tmpref52, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1447(line=57, offs=12) -- 1453(line=57, offs=18)
+*/
+ATSINSmove(tmp53, ATSLIB_056_prelude__eq_g0int_int__10__2(tmpref52, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1444(line=57, offs=9) -- 1791(line=71, offs=14)
+*/
+ATSif(
+tmp53
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1469(line=58, offs=11) -- 1564(line=62, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1489(line=59, offs=17) -- 1490(line=59, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref56) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1493(line=59, offs=21) -- 1509(line=59, offs=37)
+*/
+ATSINSmove(tmpref56, ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1536(line=61, offs=13) -- 1550(line=61, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmpref56) ;
+ATSINSmove_tlcal(apy1, tmpref51) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_big_exp_15) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1469(line=58, offs=11) -- 1564(line=62, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1588(line=64, offs=11) -- 1791(line=71, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1608(line=65, offs=17) -- 1610(line=65, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref76) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1613(line=65, offs=22) -- 1629(line=65, offs=38)
+*/
+ATSINSmove(tmpref76, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1647(line=66, offs=17) -- 1649(line=66, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref82) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1652(line=66, offs=22) -- 1667(line=66, offs=37)
+*/
+ATSINSmove(tmpref82, big_exp_15(tmpref76, tmpref51)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1684(line=67, offs=17) -- 1685(line=67, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref83) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1688(line=67, offs=21) -- 1714(line=67, offs=47)
+*/
+ATSINSmove(tmpref83, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(tmpref82, ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1736(line=68, offs=22) -- 1749(line=68, offs=35)
+*/
+ATSINSmove_void(tmp88, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1776(line=70, offs=13) -- 1777(line=70, offs=14)
+*/
+ATSINSmove(tmpret23, tmpref83) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1588(line=64, offs=11) -- 1791(line=71, offs=14)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1375(line=53, offs=7) -- 1801(line=72, offs=10)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1818(line=74, offs=8) -- 1831(line=74, offs=21)
+*/
+ATSINSmove_void(tmp91, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1835(line=74, offs=25) -- 1848(line=74, offs=38)
+*/
+ATSINSmove(tmpret23, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(ATSPMVi0nt(1))) ;
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret23) ;
+} /* end of [big_exp_15] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4643))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25, PMVtmpltcst(g1int_eq<S2Evar(tk(4643))>)(arg0, tmp26)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25__1, atspre_g1int_eq_int(arg0, tmp26__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$19$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret30, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp33, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
+*/
+ATSINSmove(tmp31, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
+*/
+ATSINSmove(tmp33, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp31, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
+*/
+ATSif(
+tmp33
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
+*/
+ATSINSmove(tmp32, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
+*/
+ATSINSmove(tmp34, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp31, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
+*/
+ATSif(
+tmp34
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
+*/
+ATSINSmove(tmp32, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
+*/
+ATSINSmove(tmp32, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
+*/
+ATSINSmove(tmpret30, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp32)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret30) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$19$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret30__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp31__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp33__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__1, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
+*/
+ATSINSmove(tmp31__1, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
+*/
+ATSINSmove(tmp33__1, ATSLIB_056_prelude__lt_g0int_int__21__1(tmp31__1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
+*/
+ATSif(
+tmp33__1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
+*/
+ATSINSmove(tmp32__1, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
+*/
+ATSINSmove(tmp34__1, ATSLIB_056_prelude__gt_g0int_int__25__1(tmp31__1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
+*/
+ATSif(
+tmp34__1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
+*/
+ATSINSmove(tmp32__1, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
+*/
+ATSINSmove(tmp32__1, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
+*/
+ATSINSmove(tmpret30__1, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp32__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret30__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
+*/
+/*
+local: 
+global: lt_g0int_int$21$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4624)
+tmparg = S2Evar(tk(4624))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret40, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
+*/
+ATSINSmove(tmp41, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4624))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
+*/
+ATSINSmove(tmpret40, PMVtmpltcst(g0int_lt<S2Evar(tk(4624))>)(arg0, tmp41)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret40) ;
+} /* end of [ATSLIB_056_prelude__lt_g0int_int__21] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
+*/
+/*
+local: 
+global: lt_g0int_int$21$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4624)
+tmparg = S2Evar(tk(4624))
+tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret40__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
+*/
+ATSINSmove(tmp41__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
+*/
+ATSINSmove(tmpret40__1, atspre_g0int_lt_int(arg0, tmp41__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret40__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g0int_int__21__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
+*/
+/*
+local: 
+global: gt_g0int_int$25$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4626)
+tmparg = S2Evar(tk(4626))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret44, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
+*/
+ATSINSmove(tmp45, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4626))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
+*/
+ATSINSmove(tmpret44, PMVtmpltcst(g0int_gt<S2Evar(tk(4626))>)(arg0, tmp45)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret44) ;
+} /* end of [ATSLIB_056_prelude__gt_g0int_int__25] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
+*/
+/*
+local: 
+global: gt_g0int_int$25$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4626)
+tmparg = S2Evar(tk(4626))
+tmpsub = Some(tk(4626) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret44__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
+*/
+ATSINSmove(tmp45__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
+*/
+ATSINSmove(tmpret44__1, atspre_g0int_gt_int(arg0, tmp45__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret44__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g0int_int__25__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__2, atspre_g1int_gt_int(arg0, tmp9__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__2) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__2, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__2, atspre_g0int_eq_int(arg0, tmp16__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
+*/
+/*
+local: 
+global: square_intinf0$30$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret57, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp58, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp59) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
+*/
+ATSINSmove(tmp58, PMVtmpltcst(square_intinf1<>)(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
+*/
+ATSINSmove_void(tmp59, PMVtmpltcst(intinf_free<>)(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
+*/
+ATSINSmove(tmpret57, tmp58) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret57) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
+*/
+/*
+local: 
+global: square_intinf0$30$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret57__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp58__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp59__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
+*/
+ATSINSmove(tmp58__1, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
+*/
+ATSINSmove_void(tmp59__1, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
+*/
+ATSINSmove(tmpret57__1, tmp58__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret57__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65) ;
+// ATStmpdec_void(tmp66) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63, tmp64) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65__1) ;
+// ATStmpdec_void(tmp66__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64__1, ATSLIB_056_prelude__ptr_alloc__1__2()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65__1, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66__1, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63__1, tmp64__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$2(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72) ;
+// ATStmpdec_void(tmp73) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__1) ;
+// ATStmpdec_void(tmp73__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__1, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63__2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65__2) ;
+// ATStmpdec_void(tmp66__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64__2, ATSLIB_056_prelude__ptr_alloc__1__3()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65__2, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66__2, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63__2, tmp64__2) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__3()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__3, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__3] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$39$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret84, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp85) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp85, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret84, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret84) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$39$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret84__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp85__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp85__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret84__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret84__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__2) ;
+// ATStmpdec_void(tmp73__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__2, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__3) ;
+// ATStmpdec_void(tmp73__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__3, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$43$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp95, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp96) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp95, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp96, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp95, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret94, tmp95) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$43$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp95__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp96__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp95__1, ATSLIB_056_prelude__ptr_alloc__1__4()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp96__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp95__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret94__1, tmp95__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__4()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__4, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__4) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1895(line=77, offs=4) -- 2042(line=82, offs=6)
+*/
+/*
+local: 
+global: sqrt_int_46$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_46(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret101, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref102, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp103, atstkind_t0ype(atstype_double)) ;
+ATStmpdec(tmp104, atstkind_t0ype(atstype_double)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1895(line=77, offs=4) -- 2042(line=82, offs=6)
+*/
+ATSINSflab(__patsflab_sqrt_int_46):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1941(line=78, offs=3) -- 2042(line=82, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1953(line=79, offs=9) -- 1958(line=79, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref102) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1985(line=79, offs=41) -- 2009(line=79, offs=65)
+*/
+ATSINSmove(tmp104, atspre_g0int2float_int_double(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1973(line=79, offs=29) -- 2011(line=79, offs=67)
+*/
+ATSINSmove(tmp103, atslib_libats_libc_sqrt_double(tmp104)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1961(line=79, offs=17) -- 2012(line=79, offs=68)
+*/
+ATSINSmove(tmpref102, atspre_g0float2int_double_int(tmp103)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2022(line=81, offs=5) -- 2035(line=81, offs=18)
+*/
+ATSINSmove(tmpret101, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmpref102)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1941(line=78, offs=3) -- 2042(line=82, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret101) ;
+} /* end of [sqrt_int_46] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2078(line=85, offs=4) -- 2659(line=108, offs=10)
+*/
+/*
+local: sqrt_int_46$0(level=0)
+global: sqrt_int_46$0(level=0), is_prime_48$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_48(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret105, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp124, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2078(line=85, offs=4) -- 2659(line=108, offs=10)
+*/
+ATSINSflab(__patsflab_is_prime_48):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2114(line=86, offs=3) -- 2659(line=108, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2131(line=87, offs=7) -- 2132(line=87, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2087(line=85, offs=13) -- 2088(line=85, offs=14)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2132(line=87, offs=8) -- 2132(line=87, offs=8)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2136(line=87, offs=12) -- 2141(line=87, offs=17)
+*/
+ATSINSmove(tmpret105, ATSPMVbool_false()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2149(line=88, offs=8) -- 2149(line=88, offs=8)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2174(line=90, offs=9) -- 2649(line=107, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2625(line=106, offs=19) -- 2635(line=106, offs=29)
+*/
+ATSINSmove(tmp124, sqrt_int_46(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2617(line=106, offs=11) -- 2637(line=106, offs=31)
+*/
+ATSINSmove(tmpret105, loop_49(arg0, ATSPMVi0nt(2), tmp124)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2174(line=90, offs=9) -- 2649(line=107, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret105) ;
+} /* end of [is_prime_48] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2192(line=91, offs=15) -- 2595(line=104, offs=21)
+*/
+/*
+local: loop_49$0(level=1)
+global: loop_49$0(level=1)
+local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_49(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(tmpret106, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp107, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp112, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp115, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp116, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp117, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp120, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp123, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2192(line=91, offs=15) -- 2595(line=104, offs=21)
+*/
+ATSINSflab(__patsflab_loop_49):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2282(line=92, offs=16) -- 2291(line=92, offs=25)
+*/
+ATSINSmove(tmp107, ATSLIB_056_prelude__lt_g1int_int__50__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2279(line=92, offs=13) -- 2595(line=104, offs=21)
+*/
+ATSif(
+tmp107
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2314(line=93, offs=18) -- 2319(line=93, offs=23)
+*/
+ATSINSmove(tmp115, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2314(line=93, offs=18) -- 2323(line=93, offs=27)
+*/
+ATSINSmove(tmp112, ATSLIB_056_prelude__eq_g0int_int__10__3(tmp115, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2311(line=93, offs=15) -- 2404(line=96, offs=35)
+*/
+ATSif(
+tmp112
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2345(line=94, offs=17) -- 2350(line=94, offs=22)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2391(line=96, offs=22) -- 2396(line=96, offs=27)
+*/
+ATSINSmove(tmp116, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2386(line=96, offs=17) -- 2404(line=96, offs=35)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp116) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_49) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2439(line=98, offs=18) -- 2448(line=98, offs=27)
+*/
+ATSINSmove(tmp117, ATSLIB_056_prelude__eq_g1int_int__16__2(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2436(line=98, offs=15) -- 2595(line=104, offs=21)
+*/
+ATSif(
+tmp117
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2473(line=99, offs=20) -- 2478(line=99, offs=25)
+*/
+ATSINSmove(tmp123, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2473(line=99, offs=20) -- 2482(line=99, offs=29)
+*/
+ATSINSmove(tmp120, ATSLIB_056_prelude__eq_g0int_int__10__4(tmp123, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2470(line=99, offs=17) -- 2555(line=102, offs=23)
+*/
+ATSif(
+tmp120
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2506(line=100, offs=19) -- 2511(line=100, offs=24)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2551(line=102, offs=19) -- 2555(line=102, offs=23)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_true()) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2591(line=104, offs=17) -- 2595(line=104, offs=21)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_true()) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret106) ;
+} /* end of [loop_49] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4631))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108, PMVtmpltcst(g1int_lt<S2Evar(tk(4631))>)(arg0, tmp109)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = Some(tk(4631) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108__1, atspre_g1int_lt_int(arg0, tmp109__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__3, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__3, atspre_g0int_eq_int(arg0, tmp16__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25__2, atspre_g1int_eq_int(arg0, tmp26__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__4, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__4, atspre_g0int_eq_int(arg0, tmp16__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__4) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 451(line=14, offs=19) -- 471(line=15, offs=12)
+*/
+/*
+local: 
+global: divides$57$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret125, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp128, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 443(line=14, offs=11) -- 471(line=15, offs=12)
+*/
+ATSINSflab(__patsflab_divides):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 462(line=15, offs=3) -- 467(line=15, offs=8)
+*/
+ATSINSmove(tmp128, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 462(line=15, offs=3) -- 471(line=15, offs=12)
+*/
+ATSINSmove(tmpret125, ATSLIB_056_prelude__eq_g0int_int__10__5(tmp128, ATSPMVi0nt(0))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret125) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divides] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$5(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__5, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__5, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__5, atspre_g0int_eq_int(arg0, tmp16__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__5) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 487(line=17, offs=15) -- 552(line=21, offs=6)
+*/
+/*
+local: 
+global: gcd$59$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(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(tmpret129, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp130, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp135, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 483(line=17, offs=11) -- 552(line=21, offs=6)
+*/
+ATSINSflab(__patsflab_gcd):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 501(line=18, offs=6) -- 507(line=18, offs=12)
+*/
+ATSINSmove(tmp130, ATSLIB_056_prelude__neq_g1int_int__60__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 498(line=18, offs=3) -- 552(line=21, offs=6)
+*/
+ATSif(
+tmp130
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 532(line=19, offs=20) -- 537(line=19, offs=25)
+*/
+ATSINSmove(tmp135, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 517(line=19, offs=5) -- 539(line=19, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp135)) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_gcd) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 551(line=21, offs=5) -- 552(line=21, offs=6)
+*/
+ATSINSmove(tmpret129, arg0) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret129) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$60$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4646)
+tmparg = S2Evar(tk(4646))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp132, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp132, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4646))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret131, PMVtmpltcst(g1int_neq<S2Evar(tk(4646))>)(arg0, tmp132)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret131) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__60] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$60$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4646)
+tmparg = S2Evar(tk(4646))
+tmpsub = Some(tk(4646) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp132__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp132__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret131__1, atspre_g1int_neq_int(arg0, tmp132__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret131__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__60__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 568(line=23, offs=15) -- 598(line=24, offs=22)
+*/
+/*
+local: 
+global: lcm$63$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret136, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp137, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp138, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 564(line=23, offs=11) -- 598(line=24, offs=22)
+*/
+ATSINSflab(__patsflab_lcm):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 584(line=24, offs=8) -- 593(line=24, offs=17)
+*/
+ATSINSmove(tmp138, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 580(line=24, offs=4) -- 593(line=24, offs=17)
+*/
+ATSINSmove(tmp137, atspre_g0int_div_int(arg0, tmp138)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 579(line=24, offs=3) -- 598(line=24, offs=22)
+*/
+ATSINSmove(tmpret136, atspre_g0int_mul_int(tmp137, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret136) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__lcm] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 618(line=26, offs=19) -- 642(line=27, offs=16)
+*/
+/*
+local: 
+global: coprime$65$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret139, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 610(line=26, offs=11) -- 642(line=27, offs=16)
+*/
+ATSINSflab(__patsflab_coprime):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 629(line=27, offs=3) -- 638(line=27, offs=12)
+*/
+ATSINSmove(tmp142, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__gcd(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 629(line=27, offs=3) -- 642(line=27, offs=16)
+*/
+ATSINSmove(tmpret139, ATSLIB_056_prelude__eq_g0int_int__10__6(tmp142, ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret139) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__coprime] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$6(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__6, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__6, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__6, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__6, atspre_g0int_eq_int(arg0, tmp16__6)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__6) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__6] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 663(line=29, offs=20) -- 1642(line=61, offs=8)
+*/
+/*
+local: sqrt_int_46$0(level=0)
+global: sqrt_int_46$0(level=0), divisors$67$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret143, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 654(line=29, offs=11) -- 1642(line=61, offs=8)
+*/
+ATSINSflab(__patsflab_divisors):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 671(line=30, offs=3) -- 1642(line=61, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 688(line=31, offs=7) -- 689(line=31, offs=8)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 664(line=29, offs=21) -- 665(line=29, offs=22)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 689(line=31, offs=8) -- 689(line=31, offs=8)
+*/
+ATSINSlab(__atstmplab7):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 693(line=31, offs=12) -- 743(line=31, offs=62)
+*/
+ATSINSmove_ldelay(tmpret143, atstype_boxed, ATSPMVcfunlab(1, __patsfun_68, ())) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 751(line=32, offs=8) -- 751(line=32, offs=8)
+*/
+ATSINSlab(__atstmplab8):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 755(line=32, offs=12) -- 1642(line=61, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1624(line=60, offs=7) -- 1634(line=60, offs=17)
+*/
+ATSINSmove(tmpret143, loop_70(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 755(line=32, offs=12) -- 1642(line=61, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret143) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 693(line=31, offs=12) -- 743(line=31, offs=62)
+*/
+/*
+local: 
+global: __patsfun_68$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_68(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret144, atstype_boxed) ;
+ATStmpdec(tmp145, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 693(line=31, offs=12) -- 743(line=31, offs=62)
+*/
+ATSINSflab(__patsflab___patsfun_68):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 693(line=31, offs=12) -- 743(line=31, offs=62)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 719(line=31, offs=38) -- 741(line=31, offs=60)
+*/
+ATSINSmove_ldelay(tmp145, atstype_boxed, ATSPMVcfunlab(1, __patsfun_69, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 701(line=31, offs=20) -- 742(line=31, offs=61)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret144, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret144, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret144, postiats_tysum_1, atslab__0, ATSPMVi0nt(1)) ;
+ATSINSstore_con1_ofs(tmpret144, postiats_tysum_1, atslab__1, tmp145) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret144) ;
+} /* end of [__patsfun_68] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 719(line=31, offs=38) -- 741(line=31, offs=60)
+*/
+/*
+local: 
+global: __patsfun_69$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_69(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret146, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 719(line=31, offs=38) -- 741(line=31, offs=60)
+*/
+ATSINSflab(__patsflab___patsfun_69):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 719(line=31, offs=38) -- 741(line=31, offs=60)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 727(line=31, offs=46) -- 740(line=31, offs=59)
+*/
+
+ATSINSmove_nil(tmpret146) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret146) ;
+} /* end of [__patsfun_69] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 769(line=33, offs=11) -- 1610(line=58, offs=29)
+*/
+/*
+local: sqrt_int_46$0(level=0), loop_70$0(level=1)
+global: sqrt_int_46$0(level=0), loop_70$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_70(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret147, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp148, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp153, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp154, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp157, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp158, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp161, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref162, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp172, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp175, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref176, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp182, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 769(line=33, offs=11) -- 1610(line=58, offs=29)
+*/
+ATSINSflab(__patsflab_loop_70):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 876(line=34, offs=19) -- 886(line=34, offs=29)
+*/
+ATSINSmove(tmp153, sqrt_int_46(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 869(line=34, offs=12) -- 886(line=34, offs=29)
+*/
+ATSINSmove(tmp148, ATSLIB_056_prelude__gte_g1int_int__71__1(arg1, tmp153)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 866(line=34, offs=9) -- 1610(line=58, offs=29)
+*/
+ATSif(
+tmp148
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 906(line=35, offs=14) -- 913(line=35, offs=21)
+*/
+ATSINSmove(tmp157, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 906(line=35, offs=14) -- 917(line=35, offs=25)
+*/
+ATSINSmove(tmp154, ATSLIB_056_prelude__eq_g0int_int__10__7(tmp157, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 903(line=35, offs=11) -- 1350(line=49, offs=35)
+*/
+ATSif(
+tmp154
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 938(line=36, offs=16) -- 945(line=36, offs=23)
+*/
+ATSINSmove(tmp161, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 938(line=36, offs=16) -- 952(line=36, offs=30)
+*/
+ATSINSmove(tmp158, ATSLIB_056_prelude__neq_g1int_int__60__2(tmp161, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 935(line=36, offs=13) -- 1300(line=47, offs=18)
+*/
+ATSif(
+tmp158
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 972(line=37, offs=15) -- 1144(line=41, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 996(line=38, offs=21) -- 997(line=38, offs=22)
+*/
+/*
+ATSINStmpdec(tmpref162) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1005(line=38, offs=30) -- 1012(line=38, offs=37)
+*/
+ATSINSmove(tmpref162, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1046(line=40, offs=17) -- 1126(line=40, offs=97)
+*/
+ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_77, (arg1, ATSPMVptrof(tmpref162)))) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 972(line=37, offs=15) -- 1144(line=41, offs=18)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1230(line=46, offs=17) -- 1282(line=46, offs=69)
+*/
+ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_80, (arg1))) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1328(line=49, offs=13) -- 1350(line=49, offs=35)
+*/
+ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_82, ())) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1377(line=51, offs=14) -- 1384(line=51, offs=21)
+*/
+ATSINSmove(tmp175, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1377(line=51, offs=14) -- 1388(line=51, offs=25)
+*/
+ATSINSmove(tmp172, ATSLIB_056_prelude__eq_g0int_int__10__8(tmp175, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1374(line=51, offs=11) -- 1610(line=58, offs=29)
+*/
+ATSif(
+tmp172
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1406(line=52, offs=13) -- 1566(line=56, offs=16)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1428(line=53, offs=19) -- 1429(line=53, offs=20)
+*/
+/*
+ATSINStmpdec(tmpref176) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1437(line=53, offs=28) -- 1444(line=53, offs=35)
+*/
+ATSINSmove(tmpref176, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1474(line=55, offs=15) -- 1550(line=55, offs=91)
+*/
+ATSINSmove_ldelay(tmpret147, atstype_boxed, ATSPMVcfunlab(1, __patsfun_84, (arg0, arg1, ATSPMVptrof(tmpref176)))) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1406(line=52, offs=13) -- 1566(line=56, offs=16)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1602(line=58, offs=21) -- 1609(line=58, offs=28)
+*/
+ATSINSmove(tmp182, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1594(line=58, offs=13) -- 1610(line=58, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp182) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_70) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret147) ;
+} /* end of [loop_70] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$71$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4640)
+tmparg = S2Evar(tk(4640))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp150, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp150, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4640))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret149, PMVtmpltcst(g1int_gte<S2Evar(tk(4640))>)(arg0, tmp150)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret149) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__71] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$71$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4640)
+tmparg = S2Evar(tk(4640))
+tmpsub = Some(tk(4640) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp150__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp150__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret149__1, atspre_g1int_gte_int(arg0, tmp150__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret149__1) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__71__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__7, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__7, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__7, atspre_g0int_eq_int(arg0, tmp16__7)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__7) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__7] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$60$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4646)
+tmparg = S2Evar(tk(4646))
+tmpsub = Some(tk(4646) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp132__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp132__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret131__2, atspre_g1int_neq_int(arg0, tmp132__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret131__2) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__60__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1046(line=40, offs=17) -- 1126(line=40, offs=97)
+*/
+/*
+local: 
+global: __patsfun_77$0(level=2)
+local: acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5118(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+global: acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5118(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_77(atstkind_t0ype(atstype_int) env0, atstkind_type(atstype_ptrk) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret163, atstype_boxed) ;
+ATStmpdec(tmp164, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1046(line=40, offs=17) -- 1126(line=40, offs=97)
+*/
+ATSINSflab(__patsflab___patsfun_77):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1046(line=40, offs=17) -- 1126(line=40, offs=97)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1074(line=40, offs=45) -- 1124(line=40, offs=95)
+*/
+ATSINSmove_ldelay(tmp164, atstype_boxed, ATSPMVcfunlab(1, __patsfun_78, (env1))) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1054(line=40, offs=25) -- 1125(line=40, offs=96)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret163, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret163, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret163, postiats_tysum_1, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret163, postiats_tysum_1, atslab__1, tmp164) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret163) ;
+} /* end of [__patsfun_77] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1074(line=40, offs=45) -- 1124(line=40, offs=95)
+*/
+/*
+local: 
+global: __patsfun_78$0(level=3)
+local: x$5118(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+global: x$5118(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_78(atstkind_type(atstype_ptrk) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret165, atstype_boxed) ;
+ATStmpdec(tmp166, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1074(line=40, offs=45) -- 1124(line=40, offs=95)
+*/
+ATSINSflab(__patsflab___patsfun_78):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1074(line=40, offs=45) -- 1124(line=40, offs=95)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1100(line=40, offs=71) -- 1122(line=40, offs=93)
+*/
+ATSINSmove_ldelay(tmp166, atstype_boxed, ATSPMVcfunlab(1, __patsfun_79, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1082(line=40, offs=53) -- 1123(line=40, offs=94)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret165, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret165, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret165, postiats_tysum_1, atslab__0, ATSderef(env0, atstkind_t0ype(atstype_int))) ;
+ATSINSstore_con1_ofs(tmpret165, postiats_tysum_1, atslab__1, tmp166) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret165) ;
+} /* end of [__patsfun_78] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1100(line=40, offs=71) -- 1122(line=40, offs=93)
+*/
+/*
+local: 
+global: __patsfun_79$0(level=4)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_79(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret167, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1100(line=40, offs=71) -- 1122(line=40, offs=93)
+*/
+ATSINSflab(__patsflab___patsfun_79):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1100(line=40, offs=71) -- 1122(line=40, offs=93)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1108(line=40, offs=79) -- 1121(line=40, offs=92)
+*/
+
+ATSINSmove_nil(tmpret167) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret167) ;
+} /* end of [__patsfun_79] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1230(line=46, offs=17) -- 1282(line=46, offs=69)
+*/
+/*
+local: 
+global: __patsfun_80$0(level=2)
+local: acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_80(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret168, atstype_boxed) ;
+ATStmpdec(tmp169, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1230(line=46, offs=17) -- 1282(line=46, offs=69)
+*/
+ATSINSflab(__patsflab___patsfun_80):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1230(line=46, offs=17) -- 1282(line=46, offs=69)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1258(line=46, offs=45) -- 1280(line=46, offs=67)
+*/
+ATSINSmove_ldelay(tmp169, atstype_boxed, ATSPMVcfunlab(1, __patsfun_81, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1238(line=46, offs=25) -- 1281(line=46, offs=68)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret168, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret168, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret168, postiats_tysum_1, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret168, postiats_tysum_1, atslab__1, tmp169) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret168) ;
+} /* end of [__patsfun_80] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1258(line=46, offs=45) -- 1280(line=46, offs=67)
+*/
+/*
+local: 
+global: __patsfun_81$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_81(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret170, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1258(line=46, offs=45) -- 1280(line=46, offs=67)
+*/
+ATSINSflab(__patsflab___patsfun_81):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1258(line=46, offs=45) -- 1280(line=46, offs=67)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1266(line=46, offs=53) -- 1279(line=46, offs=66)
+*/
+
+ATSINSmove_nil(tmpret170) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret170) ;
+} /* end of [__patsfun_81] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1328(line=49, offs=13) -- 1350(line=49, offs=35)
+*/
+/*
+local: 
+global: __patsfun_82$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_82(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret171, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1328(line=49, offs=13) -- 1350(line=49, offs=35)
+*/
+ATSINSflab(__patsflab___patsfun_82):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1328(line=49, offs=13) -- 1350(line=49, offs=35)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1336(line=49, offs=21) -- 1349(line=49, offs=34)
+*/
+
+ATSINSmove_nil(tmpret171) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret171) ;
+} /* end of [__patsfun_82] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$8(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__8, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__8, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__8, atspre_g0int_eq_int(arg0, tmp16__8)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__8) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__8] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1474(line=55, offs=15) -- 1550(line=55, offs=91)
+*/
+/*
+local: loop_70$0(level=1)
+global: loop_70$0(level=1), __patsfun_84$0(level=2)
+local: n$5116(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5119(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+global: n$5116(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5119(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_84(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret177, atstype_boxed) ;
+ATStmpdec(tmp178, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1474(line=55, offs=15) -- 1550(line=55, offs=91)
+*/
+ATSINSflab(__patsflab___patsfun_84):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1474(line=55, offs=15) -- 1550(line=55, offs=91)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1502(line=55, offs=43) -- 1548(line=55, offs=89)
+*/
+ATSINSmove_ldelay(tmp178, atstype_boxed, ATSPMVcfunlab(1, __patsfun_85, (env0, env1, env2))) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1482(line=55, offs=23) -- 1549(line=55, offs=90)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret177, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret177, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret177, postiats_tysum_1, atslab__0, env1) ;
+ATSINSstore_con1_ofs(tmpret177, postiats_tysum_1, atslab__1, tmp178) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret177) ;
+} /* end of [__patsfun_84] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1502(line=55, offs=43) -- 1548(line=55, offs=89)
+*/
+/*
+local: loop_70$0(level=1)
+global: loop_70$0(level=1), __patsfun_85$0(level=3)
+local: n$5116(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5119(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+global: n$5116(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), x$5119(2)(HSEapp(HSEcst(atstkind_type); HSEs2exp(S2Eextkind(atstype_ptrk))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_85(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_type(atstype_ptrk) env2, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret179, atstype_boxed) ;
+ATStmpdec(tmp180, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp181, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1502(line=55, offs=43) -- 1548(line=55, offs=89)
+*/
+ATSINSflab(__patsflab___patsfun_85):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1502(line=55, offs=43) -- 1548(line=55, offs=89)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1537(line=55, offs=78) -- 1544(line=55, offs=85)
+*/
+ATSINSmove(tmp181, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1529(line=55, offs=70) -- 1545(line=55, offs=86)
+*/
+ATSINSmove(tmp180, loop_70(env0, tmp181)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1510(line=55, offs=51) -- 1547(line=55, offs=88)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret179, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret179, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret179, postiats_tysum_1, atslab__0, ATSderef(env2, atstkind_t0ype(atstype_int))) ;
+ATSINSstore_con1_ofs(tmpret179, postiats_tysum_1, atslab__1, tmp180) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret179) ;
+} /* end of [__patsfun_85] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1682(line=64, offs=4) -- 1754(line=65, offs=18)
+*/
+/*
+local: 
+global: div_gt_zero_86$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+div_gt_zero_86(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret183, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp184, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1682(line=64, offs=4) -- 1754(line=65, offs=18)
+*/
+ATSINSflab(__patsflab_div_gt_zero_86):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1748(line=65, offs=12) -- 1753(line=65, offs=17)
+*/
+ATSINSmove(tmp184, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1739(line=65, offs=3) -- 1754(line=65, offs=18)
+*/
+ATSINSmove(tmpret183, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp184)) ;
+ATSfunbody_end()
+ATSreturn(tmpret183) ;
+} /* end of [div_gt_zero_86] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1873(line=69, offs=5) -- 3801(line=132, offs=6)
+*/
+/*
+local: exp_3$0(level=0), is_prime_48$0(level=0), div_gt_zero_86$0(level=0)
+global: exp_3$0(level=0), sqrt_int_46$0(level=0), is_prime_48$0(level=0), div_gt_zero_86$0(level=0), jacobi_87$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+jacobi_87(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret185, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1873(line=69, offs=5) -- 3801(line=132, offs=6)
+*/
+ATSINSflab(__patsflab_jacobi_87):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1914(line=70, offs=3) -- 3801(line=132, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3788(line=131, offs=5) -- 3795(line=131, offs=12)
+*/
+ATSINSmove(tmpret185, loop_98(arg0, arg1, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1914(line=70, offs=3) -- 3801(line=132, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret185) ;
+} /* end of [jacobi_87] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1967(line=72, offs=9) -- 3295(line=112, offs=12)
+*/
+/*
+local: 
+global: legendre_88$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+legendre_88(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret186, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp187, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref206, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp207, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp208, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp209, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp210, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp213, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp214, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp215, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp218, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 1967(line=72, offs=9) -- 3295(line=112, offs=12)
+*/
+ATSINSflab(__patsflab_legendre_88):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2055(line=73, offs=13) -- 2060(line=73, offs=18)
+*/
+ATSINSmove(tmp187, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2049(line=73, offs=7) -- 3295(line=112, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2074(line=74, offs=11) -- 2075(line=74, offs=12)
+*/
+ATSINSlab(__atstmplab9):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2055(line=73, offs=13) -- 2060(line=73, offs=18)
+*/
+ATSifnthen(ATSCKpat_int(tmp187, ATSPMVint(0))) { ATSINSgoto(__atstmplab11) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2075(line=74, offs=12) -- 2075(line=74, offs=12)
+*/
+ATSINSlab(__atstmplab10):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2079(line=74, offs=16) -- 2080(line=74, offs=17)
+*/
+ATSINSmove(tmpret186, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2092(line=75, offs=12) -- 2092(line=75, offs=12)
+*/
+ATSINSlab(__atstmplab11):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2096(line=75, offs=16) -- 3295(line=112, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3115(line=106, offs=15) -- 3116(line=106, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref206) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3137(line=106, offs=37) -- 3142(line=106, offs=42)
+*/
+ATSINSmove(tmp208, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3136(line=106, offs=36) -- 3147(line=106, offs=47)
+*/
+ATSINSmove(tmp207, atspre_g1int_div_int(tmp208, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3119(line=106, offs=19) -- 3151(line=106, offs=51)
+*/
+ATSINSmove(tmpref206, exp_mod_prime_89(arg0, tmp207, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3179(line=108, offs=17) -- 3180(line=108, offs=18)
+*/
+ATSINSmove(tmp209, tmpref206) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3173(line=108, offs=11) -- 3283(line=111, offs=21)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3199(line=109, offs=16) -- 3199(line=109, offs=16)
+*/
+ATSINSlab(__atstmplab15):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3210(line=109, offs=27) -- 3215(line=109, offs=32)
+*/
+ATSINSmove(tmp214, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3205(line=109, offs=22) -- 3216(line=109, offs=33)
+*/
+ATSINSmove(tmp213, atspre_g0int_mod_int(tmp209, tmp214)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3205(line=109, offs=22) -- 3220(line=109, offs=37)
+*/
+ATSINSmove(tmp210, ATSLIB_056_prelude__eq_g0int_int__10__10(tmp213, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3205(line=109, offs=22) -- 3220(line=109, offs=37)
+*/
+ATSifnthen(ATSCKpat_bool(tmp210, ATSPMVbool_true())) { ATSINSgoto(__atstmplab16) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3224(line=109, offs=41) -- 3226(line=109, offs=43)
+*/
+ATSINSmove(tmpret186, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3242(line=110, offs=16) -- 3242(line=110, offs=16)
+*/
+ATSINSlab(__atstmplab16):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3248(line=110, offs=22) -- 3253(line=110, offs=27)
+*/
+ATSINSmove(tmp218, atspre_g0int_mod_int(tmp209, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3248(line=110, offs=22) -- 3257(line=110, offs=31)
+*/
+ATSINSmove(tmp215, ATSLIB_056_prelude__eq_g0int_int__10__11(tmp218, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3248(line=110, offs=22) -- 3257(line=110, offs=31)
+*/
+ATSifnthen(ATSCKpat_bool(tmp215, ATSPMVbool_true())) { ATSINSgoto(__atstmplab17) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3261(line=110, offs=35) -- 3262(line=110, offs=36)
+*/
+ATSINSmove(tmpret186, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3278(line=111, offs=16) -- 3278(line=111, offs=16)
+*/
+ATSINSlab(__atstmplab17):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3282(line=111, offs=20) -- 3283(line=111, offs=21)
+*/
+ATSINSmove(tmpret186, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2096(line=75, offs=16) -- 3295(line=112, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret186) ;
+} /* end of [legendre_88] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2156(line=77, offs=15) -- 3089(line=104, offs=16)
+*/
+/*
+local: exp_mod_prime_89$0(level=2)
+global: exp_mod_prime_89$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_mod_prime_89(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_t0ype(atstype_int) arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy2, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret188, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref189, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref190, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp191, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp192, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref195, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp196, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref197, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref198, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp199, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp200, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp201, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref204, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp205, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2156(line=77, offs=15) -- 3089(line=104, offs=16)
+*/
+ATSINSflab(__patsflab_exp_mod_prime_89):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2234(line=78, offs=13) -- 3089(line=104, offs=16)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2256(line=79, offs=19) -- 2258(line=79, offs=21)
+*/
+/*
+ATSINStmpdec(tmpref189) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2261(line=79, offs=24) -- 2266(line=79, offs=29)
+*/
+ATSINSmove(tmpref189, atspre_g0int_mod_int(arg0, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2285(line=80, offs=19) -- 2287(line=80, offs=21)
+*/
+/*
+ATSINStmpdec(tmpref190) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2295(line=80, offs=29) -- 2300(line=80, offs=34)
+*/
+ATSINSmove(tmp191, atspre_g1int_sub_int(arg2, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2290(line=80, offs=24) -- 2301(line=80, offs=35)
+*/
+ATSINSmove(tmpref190, atspre_g0int_mod_int(arg1, tmp191)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2331(line=82, offs=15) -- 3073(line=103, offs=22)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2360(line=83, offs=19) -- 2361(line=83, offs=20)
+*/
+ATSINSlab(__atstmplab12):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2170(line=77, offs=29) -- 2171(line=77, offs=30)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2361(line=83, offs=20) -- 2361(line=83, offs=20)
+*/
+ATSINSlab(__atstmplab13):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2365(line=83, offs=24) -- 2366(line=83, offs=25)
+*/
+ATSINSmove(tmpret188, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2386(line=84, offs=20) -- 2386(line=84, offs=20)
+*/
+ATSINSlab(__atstmplab14):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2439(line=86, offs=24) -- 2444(line=86, offs=29)
+*/
+ATSINSmove(tmp192, ATSLIB_056_prelude__gt_g1int_int__4__3(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2436(line=86, offs=21) -- 3051(line=102, offs=24)
+*/
+ATSif(
+tmp192
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2472(line=87, offs=23) -- 3002(line=100, offs=26)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2504(line=88, offs=29) -- 2506(line=88, offs=31)
+*/
+/*
+ATSINStmpdec(tmpref195) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2529(line=88, offs=54) -- 2536(line=88, offs=61)
+*/
+ATSINSmove(tmp196, atspre_g0int_half_int(tmpref190)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2520(line=88, offs=45) -- 2538(line=88, offs=63)
+*/
+ATSINSmove(tmpref195, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp196)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2567(line=89, offs=29) -- 2569(line=89, offs=31)
+*/
+/*
+ATSINStmpdec(tmpref197) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2572(line=89, offs=34) -- 2578(line=89, offs=40)
+*/
+ATSINSmove(tmpref197, atspre_g0int_mod_int(tmpref190, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2607(line=90, offs=29) -- 2611(line=90, offs=33)
+*/
+/*
+ATSINStmpdec(tmpref198) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2634(line=90, offs=56) -- 2639(line=90, offs=61)
+*/
+ATSINSmove(tmp200, atspre_g1int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2634(line=90, offs=56) -- 2643(line=90, offs=65)
+*/
+ATSINSmove(tmp199, atspre_g0int_mod_int(tmp200, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2625(line=90, offs=47) -- 2644(line=90, offs=66)
+*/
+ATSINSmove(tmpref198, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp199)) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2697(line=92, offs=28) -- 2703(line=92, offs=34)
+*/
+ATSINSmove(tmp201, ATSLIB_056_prelude__eq_g0int_int__10__9(tmpref197, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2694(line=92, offs=25) -- 2976(line=99, offs=30)
+*/
+ATSif(
+tmp201
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2735(line=93, offs=27) -- 2761(line=93, offs=53)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmpref198) ;
+ATSINSmove_tlcal(apy1, tmpref195) ;
+ATSINSmove_tlcal(apy2, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSfgoto(__patsflab_exp_mod_prime_89) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2817(line=95, offs=27) -- 2976(line=99, offs=30)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2853(line=96, offs=33) -- 2854(line=96, offs=34)
+*/
+/*
+ATSINStmpdec(tmpref204) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2861(line=96, offs=41) -- 2887(line=96, offs=67)
+*/
+ATSINSmove(tmp205, exp_mod_prime_89(tmpref198, tmpref195, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2857(line=96, offs=37) -- 2887(line=96, offs=67)
+*/
+ATSINSmove(tmpref204, atspre_g0int_mul_int(arg0, tmp205)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2945(line=98, offs=29) -- 2946(line=98, offs=30)
+*/
+ATSINSmove(tmpret188, tmpref204) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2817(line=95, offs=27) -- 2976(line=99, offs=30)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2472(line=87, offs=23) -- 3002(line=100, offs=26)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3050(line=102, offs=23) -- 3051(line=102, offs=24)
+*/
+ATSINSmove(tmpret188, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 2234(line=78, offs=13) -- 3089(line=104, offs=16)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret188) ;
+} /* end of [exp_mod_prime_89] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$3(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__3, atspre_g1int_gt_int(arg0, tmp9__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__3) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$9(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__9, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__9, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__9, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__9, atspre_g0int_eq_int(arg0, tmp16__9)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__9) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__9] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$10(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__10, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__10, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__10, atspre_g0int_eq_int(arg0, tmp16__10)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__10) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__10] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$11(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__11(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__11, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__11, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__11, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__11, atspre_g0int_eq_int(arg0, tmp16__11)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__11) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__11] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3309(line=114, offs=9) -- 3464(line=117, offs=17)
+*/
+/*
+local: div_gt_zero_86$0(level=0), get_multiplicity_97$0(level=1)
+global: div_gt_zero_86$0(level=0), get_multiplicity_97$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+get_multiplicity_97(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret219, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp220, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp221, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp222, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3309(line=114, offs=9) -- 3464(line=117, offs=17)
+*/
+ATSINSflab(__patsflab_get_multiplicity_97):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3381(line=115, offs=13) -- 3386(line=115, offs=18)
+*/
+ATSINSmove(tmp220, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3375(line=115, offs=7) -- 3464(line=117, offs=17)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3400(line=116, offs=11) -- 3401(line=116, offs=12)
+*/
+ATSINSlab(__atstmplab18):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3381(line=115, offs=13) -- 3386(line=115, offs=18)
+*/
+ATSifnthen(ATSCKpat_int(tmp220, ATSPMVint(0))) { ATSINSgoto(__atstmplab20) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3401(line=116, offs=12) -- 3401(line=116, offs=12)
+*/
+ATSINSlab(__atstmplab19):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3426(line=116, offs=37) -- 3443(line=116, offs=54)
+*/
+ATSINSmove(tmp222, div_gt_zero_86(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3409(line=116, offs=20) -- 3447(line=116, offs=58)
+*/
+ATSINSmove(tmp221, get_multiplicity_97(tmp222, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3405(line=116, offs=16) -- 3447(line=116, offs=58)
+*/
+ATSINSmove(tmpret219, atspre_g1int_add_int(ATSPMVi0nt(1), tmp221)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3459(line=117, offs=12) -- 3459(line=117, offs=12)
+*/
+ATSINSlab(__atstmplab20):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3463(line=117, offs=16) -- 3464(line=117, offs=17)
+*/
+ATSINSmove(tmpret219, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret219) ;
+} /* end of [get_multiplicity_97] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3478(line=119, offs=9) -- 3778(line=129, offs=26)
+*/
+/*
+local: exp_3$0(level=0), is_prime_48$0(level=0), legendre_88$0(level=1), get_multiplicity_97$0(level=1), loop_98$0(level=1)
+global: exp_3$0(level=0), is_prime_48$0(level=0), div_gt_zero_86$0(level=0), legendre_88$0(level=1), get_multiplicity_97$0(level=1), loop_98$0(level=1)
+local: a$5124(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5125(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: a$5124(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5125(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_98(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret223, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp224, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp227, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp230, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp231, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp234, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp235, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp236, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp237, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp238, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp239, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp240, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3478(line=119, offs=9) -- 3778(line=129, offs=26)
+*/
+ATSINSflab(__patsflab_loop_98):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3534(line=120, offs=10) -- 3541(line=120, offs=17)
+*/
+ATSINSmove(tmp224, ATSLIB_056_prelude__gt_g1int_int__4__4(arg0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3531(line=120, offs=7) -- 3778(line=129, offs=26)
+*/
+ATSif(
+tmp224
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3555(line=121, offs=9) -- 3556(line=121, offs=10)
+*/
+ATSINSmove(tmpret223, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3579(line=123, offs=12) -- 3584(line=123, offs=17)
+*/
+ATSINSmove(tmp227, ATSLIB_056_prelude__eq_g1int_int__16__3(env0, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3576(line=123, offs=9) -- 3778(line=129, offs=26)
+*/
+ATSif(
+tmp227
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3600(line=124, offs=11) -- 3601(line=124, offs=12)
+*/
+ATSINSmove(tmpret223, ATSPMVi0nt(0)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3628(line=126, offs=14) -- 3655(line=126, offs=41)
+*/
+ATSINSmove(tmp234, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3628(line=126, offs=14) -- 3655(line=126, offs=41)
+*/
+ATSINSmove(tmp231, ATSLIB_056_prelude__eq_g0int_int__10__12(tmp234, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3628(line=126, offs=14) -- 3655(line=126, offs=41)
+*/
+ATSif(
+tmp231
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3628(line=126, offs=14) -- 3655(line=126, offs=41)
+*/
+ATSINSmove(tmp230, is_prime_48(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3628(line=126, offs=14) -- 3655(line=126, offs=41)
+*/
+ATSINSmove(tmp230, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3625(line=126, offs=11) -- 3778(line=129, offs=26)
+*/
+ATSif(
+tmp230
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3679(line=127, offs=18) -- 3686(line=127, offs=25)
+*/
+ATSINSmove(tmp236, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3674(line=127, offs=13) -- 3687(line=127, offs=26)
+*/
+ATSINSmove(tmp235, loop_98(env0, env1, tmp236)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3694(line=127, offs=33) -- 3710(line=127, offs=49)
+*/
+ATSINSmove(tmp238, legendre_88(arg0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3712(line=127, offs=51) -- 3736(line=127, offs=75)
+*/
+ATSINSmove(tmp239, get_multiplicity_97(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3690(line=127, offs=29) -- 3737(line=127, offs=76)
+*/
+ATSINSmove(tmp237, exp_3(tmp238, tmp239)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3674(line=127, offs=13) -- 3737(line=127, offs=76)
+*/
+ATSINSmove(tmpret223, atspre_g0int_mul_int(tmp235, tmp237)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3770(line=129, offs=18) -- 3777(line=129, offs=25)
+*/
+ATSINSmove(tmp240, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3765(line=129, offs=13) -- 3778(line=129, offs=26)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp240) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSfgoto(__patsflab_loop_98) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret223) ;
+} /* end of [loop_98] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__4, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__4, atspre_g1int_gt_int(arg0, tmp9__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__4) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__4] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25__3, atspre_g1int_eq_int(arg0, tmp26__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$12(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__12(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__12, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__12, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__12, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__12, atspre_g0int_eq_int(arg0, tmp16__12)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__12) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__12] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3876(line=135, offs=5) -- 4214(line=145, offs=26)
+*/
+/*
+local: jacobi2_102$0(level=0)
+global: jacobi2_102$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+jacobi2_102(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(tmpret241, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp242, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp245, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp246, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp249, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp250, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp251, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp254, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp257, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp258, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp259, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp260, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp261, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp262, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp263, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp266, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp269, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp270, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3876(line=135, offs=5) -- 4214(line=145, offs=26)
+*/
+ATSINSflab(__patsflab_jacobi2_102):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3933(line=136, offs=3) -- 4214(line=145, offs=26)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3950(line=137, offs=7) -- 3951(line=137, offs=8)
+*/
+ATSINSlab(__atstmplab21):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3899(line=135, offs=28) -- 3900(line=135, offs=29)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab23) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3951(line=137, offs=8) -- 3951(line=137, offs=8)
+*/
+ATSINSlab(__atstmplab22):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3955(line=137, offs=12) -- 3956(line=137, offs=13)
+*/
+ATSINSmove(tmpret241, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3963(line=138, offs=7) -- 3964(line=138, offs=8)
+*/
+ATSINSlab(__atstmplab23):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3899(line=135, offs=28) -- 3900(line=135, offs=29)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab25) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3964(line=138, offs=8) -- 3964(line=138, offs=8)
+*/
+ATSINSlab(__atstmplab24):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3968(line=138, offs=12) -- 3969(line=138, offs=13)
+*/
+ATSINSmove(tmpret241, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3977(line=139, offs=8) -- 3977(line=139, offs=8)
+*/
+ATSINSlab(__atstmplab25):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3983(line=139, offs=14) -- 3988(line=139, offs=19)
+*/
+ATSINSmove(tmp242, ATSLIB_056_prelude__gt_g1int_int__4__5(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3983(line=139, offs=14) -- 3988(line=139, offs=19)
+*/
+ATSifnthen(ATSCKpat_bool(tmp242, ATSPMVbool_true())) { ATSINSgoto(__atstmplab26) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4009(line=139, offs=40) -- 4014(line=139, offs=45)
+*/
+ATSINSmove(tmp245, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 3992(line=139, offs=23) -- 4019(line=139, offs=50)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp245)) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_jacobi2_102) ;
+ATStailcal_end()
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4027(line=140, offs=8) -- 4027(line=140, offs=8)
+*/
+ATSINSlab(__atstmplab26):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4033(line=140, offs=14) -- 4038(line=140, offs=19)
+*/
+ATSINSmove(tmp249, atspre_g0int_mod_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4033(line=140, offs=14) -- 4042(line=140, offs=23)
+*/
+ATSINSmove(tmp246, ATSLIB_056_prelude__eq_g0int_int__10__13(tmp249, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4033(line=140, offs=14) -- 4042(line=140, offs=23)
+*/
+ATSifnthen(ATSCKpat_bool(tmp246, ATSPMVbool_true())) { ATSINSgoto(__atstmplab27) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp254, atspre_g0int_mod_int(arg1, ATSPMVi0nt(8))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp251, ATSLIB_056_prelude__eq_g0int_int__10__14(tmp254, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSif(
+tmp251
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp250, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp257, atspre_g0int_mod_int(arg1, ATSPMVi0nt(8))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp258, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4049(line=140, offs=30) -- 4072(line=140, offs=53)
+*/
+ATSINSmove(tmp250, ATSLIB_056_prelude__eq_g0int_int__10__15(tmp257, tmp258)) ;
+
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4046(line=140, offs=27) -- 4135(line=143, offs=25)
+*/
+ATSif(
+tmp250
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4092(line=141, offs=15) -- 4097(line=141, offs=20)
+*/
+ATSINSmove(tmp259, atspre_g1int_div_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4084(line=141, offs=7) -- 4101(line=141, offs=24)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp259) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_jacobi2_102) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4126(line=143, offs=16) -- 4131(line=143, offs=21)
+*/
+ATSINSmove(tmp261, atspre_g1int_div_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4118(line=143, offs=8) -- 4135(line=143, offs=25)
+*/
+ATSINSmove(tmp260, jacobi2_102(tmp261, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4117(line=143, offs=7) -- 4135(line=143, offs=25)
+*/
+ATSINSmove(tmpret241, atspre_g0int_neg_int(tmp260)) ;
+
+} /* ATSendif */
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4143(line=144, offs=8) -- 4143(line=144, offs=8)
+*/
+ATSINSlab(__atstmplab27):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSINSmove(tmp266, atspre_g0int_mod_int(arg0, ATSPMVi0nt(4))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSINSmove(tmp263, ATSLIB_056_prelude__eq_g0int_int__10__16(tmp266, ATSPMVi0nt(3))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSif(
+tmp263
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSINSmove(tmp269, atspre_g0int_mod_int(arg1, ATSPMVi0nt(4))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSINSmove(tmp262, ATSLIB_056_prelude__eq_g0int_int__10__17(tmp269, ATSPMVi0nt(3))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSINSmove(tmp262, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4149(line=144, offs=14) -- 4171(line=144, offs=36)
+*/
+ATSifnthen(ATSCKpat_bool(tmp262, ATSPMVbool_true())) { ATSINSgoto(__atstmplab28) ; } ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4175(line=144, offs=40) -- 4188(line=144, offs=53)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, arg0) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_jacobi2_102) ;
+ATStailcal_end()
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4196(line=145, offs=8) -- 4196(line=145, offs=8)
+*/
+ATSINSlab(__atstmplab28):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4201(line=145, offs=13) -- 4214(line=145, offs=26)
+*/
+ATSINSmove(tmp270, jacobi2_102(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4200(line=145, offs=12) -- 4214(line=145, offs=26)
+*/
+ATSINSmove(tmpret241, atspre_g0int_neg_int(tmp270)) ;
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret241) ;
+} /* end of [jacobi2_102] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$5(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__5, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__5, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__5, atspre_g1int_gt_int(arg0, tmp9__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__5) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__5] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$13(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__13(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__13, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__13, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__13, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__13, atspre_g0int_eq_int(arg0, tmp16__13)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__13) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__13] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$14(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__14(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__14, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__14, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__14, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__14, atspre_g0int_eq_int(arg0, tmp16__14)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__14) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__14] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$15(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__15(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__15, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__15, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__15, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__15, atspre_g0int_eq_int(arg0, tmp16__15)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__15) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__15] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$16(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__16(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__16, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__16, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__16, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__16, atspre_g0int_eq_int(arg0, tmp16__16)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__16) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__16] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$17(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__17(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__17, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__17, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__17, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__17, atspre_g0int_eq_int(arg0, tmp16__17)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__17) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__17] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4245(line=147, offs=30) -- 4282(line=148, offs=32)
+*/
+/*
+local: 
+global: count_divisors_ats$110$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret271, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp283, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4226(line=147, offs=11) -- 4282(line=148, offs=32)
+*/
+ATSINSflab(__patsflab_count_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4270(line=148, offs=20) -- 4280(line=148, offs=30)
+*/
+ATSINSmove(tmp283, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__divisors(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4253(line=148, offs=3) -- 4282(line=148, offs=32)
+*/
+ATSINSmove(tmpret271, ATSLIB_056_prelude__stream_vt_length__111__1(tmp283)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret271) ;
+} /* end of [count_divisors_ats] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 8385(line=480, offs=17) -- 8607(line=495, offs=4)
+*/
+/*
+local: 
+global: stream_vt_length$111$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(8194)
+tmparg = S2Evar(a(8194))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSLIB_056_prelude__stream_vt_length__111(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret272, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8369(line=480, offs=1) -- 8607(line=495, offs=4)
+*/
+ATSINSflab(__patsflab_stream_vt_length):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8590(line=494, offs=16) -- 8602(line=494, offs=28)
+*/
+ATSINSmove(tmpret272, ATSfunclo_fun(PMVd2vfunlab(d2v=loop$4191(1), flab=loop_112$0(level=1)), (atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))(arg0, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret272) ;
+} /* end of [ATSLIB_056_prelude__stream_vt_length__111] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 8404(line=483, offs=1) -- 8548(line=491, offs=2)
+*/
+/*
+local: loop_112$0(level=1)
+global: loop_112$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_112__112(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret273, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp274, atstype_boxed) ;
+ATStmpdec(tmp276, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp277, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8404(line=483, offs=1) -- 8548(line=491, offs=2)
+*/
+ATSINSflab(__patsflab_loop_112):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+ATSINSmove_llazyeval(tmp274, atstype_boxed, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8464(line=488, offs=3) -- 8546(line=490, offs=44)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8481(line=489, offs=5) -- 8497(line=489, offs=21)
+*/
+ATSINSlab(__atstmplab29):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+ATSifthen(ATSCKptriscons(tmp274)) { ATSINSgoto(__atstmplab32) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8497(line=489, offs=21) -- 8497(line=489, offs=21)
+*/
+ATSINSlab(__atstmplab30):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8501(line=489, offs=25) -- 8502(line=489, offs=26)
+*/
+ATSINSmove(tmpret273, arg1) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8529(line=490, offs=27)
+*/
+ATSINSlab(__atstmplab31):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+#if(0)
+ATSifthen(ATSCKptrisnull(tmp274)) { ATSINSdeadcode_fail() ; } ;
+#endif
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8529(line=490, offs=27) -- 8529(line=490, offs=27)
+*/
+ATSINSlab(__atstmplab32):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8526(line=490, offs=24) -- 8528(line=490, offs=26)
+*/
+ATSINSmove(tmp276, ATSSELcon(tmp274, postiats_tysum_2, atslab__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8546(line=490, offs=44)
+*/
+ATSINSfreecon(tmp274) ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8542(line=490, offs=40) -- 8545(line=490, offs=43)
+*/
+ATSINSmove(tmp277, PMVtmpltcst(g1int_add<S2Eextkind(atstype_int)>)(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8533(line=490, offs=31) -- 8546(line=490, offs=44)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp276) ;
+ATSINSmove_tlcal(apy1, tmp277) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_112) ;
+ATStailcal_end()
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret273) ;
+} /* end of [loop_112__112] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 8385(line=480, offs=17) -- 8607(line=495, offs=4)
+*/
+/*
+local: 
+global: stream_vt_length$111$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(8194)
+tmparg = S2Evar(a(8194))
+tmpsub = Some(a(8194) -> S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int)))
+*/
+atstkind_t0ype(atstype_int)
+ATSLIB_056_prelude__stream_vt_length__111__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret272__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8369(line=480, offs=1) -- 8607(line=495, offs=4)
+*/
+ATSINSflab(__patsflab_stream_vt_length):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8590(line=494, offs=16) -- 8602(line=494, offs=28)
+*/
+ATSINSmove(tmpret272__1, loop_112__112__1(arg0, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8393(line=480, offs=25) -- 8607(line=495, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret272__1) ;
+} /* end of [ATSLIB_056_prelude__stream_vt_length__111__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 8404(line=483, offs=1) -- 8548(line=491, offs=2)
+*/
+/*
+local: loop_112$1(level=2)
+global: loop_112$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_112__112__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret273__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp274__1, atstype_boxed) ;
+ATStmpdec(tmp276__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp277__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8404(line=483, offs=1) -- 8548(line=491, offs=2)
+*/
+ATSINSflab(__patsflab_loop_112):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+ATSINSmove_llazyeval(tmp274__1, atstype_boxed, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8464(line=488, offs=3) -- 8546(line=490, offs=44)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8481(line=489, offs=5) -- 8497(line=489, offs=21)
+*/
+ATSINSlab(__atstmplab29):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+ATSifthen(ATSCKptriscons(tmp274__1)) { ATSINSgoto(__atstmplab32) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8497(line=489, offs=21) -- 8497(line=489, offs=21)
+*/
+ATSINSlab(__atstmplab30):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8501(line=489, offs=25) -- 8502(line=489, offs=26)
+*/
+ATSINSmove(tmpret273__1, arg1) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8529(line=490, offs=27)
+*/
+ATSINSlab(__atstmplab31):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8470(line=488, offs=9) -- 8473(line=488, offs=12)
+*/
+#if(0)
+ATSifthen(ATSCKptrisnull(tmp274__1)) { ATSINSdeadcode_fail() ; } ;
+#endif
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8529(line=490, offs=27) -- 8529(line=490, offs=27)
+*/
+ATSINSlab(__atstmplab32):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8526(line=490, offs=24) -- 8528(line=490, offs=26)
+*/
+ATSINSmove(tmp276__1, ATSSELcon(tmp274__1, postiats_tysum_1, atslab__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8507(line=490, offs=5) -- 8546(line=490, offs=44)
+*/
+ATSINSfreecon(tmp274__1) ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8542(line=490, offs=40) -- 8545(line=490, offs=43)
+*/
+ATSINSmove(tmp277__1, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 8533(line=490, offs=31) -- 8546(line=490, offs=44)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp276__1) ;
+ATSINSmove_tlcal(apy1, tmp277__1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_112) ;
+ATStailcal_end()
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret273__1) ;
+} /* end of [loop_112__112__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4311(line=150, offs=28) -- 4880(line=176, offs=6)
+*/
+/*
+local: sqrt_int_46$0(level=0)
+global: sqrt_int_46$0(level=0), sum_divisors_ats$115$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret284, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4294(line=150, offs=11) -- 4880(line=176, offs=6)
+*/
+ATSINSflab(__patsflab_sum_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4319(line=151, offs=3) -- 4880(line=176, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4864(line=175, offs=5) -- 4874(line=175, offs=15)
+*/
+ATSINSmove(tmpret284, loop_116(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4319(line=151, offs=3) -- 4880(line=176, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret284) ;
+} /* end of [sum_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4331(line=152, offs=9) -- 4854(line=173, offs=27)
+*/
+/*
+local: sqrt_int_46$0(level=0), loop_116$0(level=1)
+global: sqrt_int_46$0(level=0), loop_116$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_116(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(tmpret285, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp286, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp289, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp290, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp293, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp294, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp297, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref298, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp299, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp302, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref303, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp304, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp305, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp306, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp307, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4331(line=152, offs=9) -- 4854(line=173, offs=27)
+*/
+ATSINSflab(__patsflab_loop_116):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4425(line=153, offs=17) -- 4435(line=153, offs=27)
+*/
+ATSINSmove(tmp289, sqrt_int_46(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4418(line=153, offs=10) -- 4435(line=153, offs=27)
+*/
+ATSINSmove(tmp286, ATSLIB_056_prelude__gte_g1int_int__71__2(arg1, tmp289)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4415(line=153, offs=7) -- 4854(line=173, offs=27)
+*/
+ATSif(
+tmp286
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4453(line=154, offs=12) -- 4460(line=154, offs=19)
+*/
+ATSINSmove(tmp293, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4453(line=154, offs=12) -- 4464(line=154, offs=23)
+*/
+ATSINSmove(tmp290, ATSLIB_056_prelude__eq_g0int_int__10__18(tmp293, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4450(line=154, offs=9) -- 4662(line=164, offs=12)
+*/
+ATSif(
+tmp290
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4483(line=155, offs=14) -- 4490(line=155, offs=21)
+*/
+ATSINSmove(tmp297, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4483(line=155, offs=14) -- 4497(line=155, offs=28)
+*/
+ATSINSmove(tmp294, ATSLIB_056_prelude__neq_g1int_int__60__3(tmp297, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4480(line=155, offs=11) -- 4637(line=162, offs=16)
+*/
+ATSif(
+tmp294
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4515(line=156, offs=13) -- 4606(line=160, offs=16)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4537(line=157, offs=19) -- 4538(line=157, offs=20)
+*/
+/*
+ATSINStmpdec(tmpref298) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4546(line=157, offs=28) -- 4553(line=157, offs=35)
+*/
+ATSINSmove(tmpref298, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4583(line=159, offs=15) -- 4590(line=159, offs=22)
+*/
+ATSINSmove(tmpret285, atspre_g1int_add_int(arg1, tmpref298)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4515(line=156, offs=13) -- 4606(line=160, offs=16)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4634(line=162, offs=13) -- 4637(line=162, offs=16)
+*/
+ATSINSmove(tmpret285, arg1) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4661(line=164, offs=11) -- 4662(line=164, offs=12)
+*/
+ATSINSmove(tmpret285, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4685(line=166, offs=12) -- 4692(line=166, offs=19)
+*/
+ATSINSmove(tmp302, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4685(line=166, offs=12) -- 4696(line=166, offs=23)
+*/
+ATSINSmove(tmp299, ATSLIB_056_prelude__eq_g0int_int__10__19(tmp302, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4682(line=166, offs=9) -- 4854(line=173, offs=27)
+*/
+ATSif(
+tmp299
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4712(line=167, offs=11) -- 4814(line=171, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4732(line=168, offs=17) -- 4733(line=168, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref303) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4741(line=168, offs=26) -- 4748(line=168, offs=33)
+*/
+ATSINSmove(tmpref303, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4774(line=170, offs=13) -- 4781(line=170, offs=20)
+*/
+ATSINSmove(tmp304, atspre_g1int_add_int(arg1, tmpref303)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4792(line=170, offs=31) -- 4799(line=170, offs=38)
+*/
+ATSINSmove(tmp306, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4784(line=170, offs=23) -- 4800(line=170, offs=39)
+*/
+ATSINSmove(tmp305, loop_116(arg0, tmp306)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4774(line=170, offs=13) -- 4800(line=170, offs=39)
+*/
+ATSINSmove(tmpret285, atspre_g0int_add_int(tmp304, tmp305)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4712(line=167, offs=11) -- 4814(line=171, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4846(line=173, offs=19) -- 4853(line=173, offs=26)
+*/
+ATSINSmove(tmp307, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4838(line=173, offs=11) -- 4854(line=173, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp307) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_116) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret285) ;
+} /* end of [loop_116] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$71$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4640)
+tmparg = S2Evar(tk(4640))
+tmpsub = Some(tk(4640) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp150__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp150__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret149__2, atspre_g1int_gte_int(arg0, tmp150__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret149__2) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__71__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$18(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__18(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__18, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__18, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__18, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__18, atspre_g0int_eq_int(arg0, tmp16__18)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__18) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__18] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$60$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4646)
+tmparg = S2Evar(tk(4646))
+tmpsub = Some(tk(4646) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__60__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp132__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp132__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret131__3, atspre_g1int_neq_int(arg0, tmp132__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret131__3) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__60__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$19(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__19(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__19, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__19, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__19, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__19, atspre_g0int_eq_int(arg0, tmp16__19)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__19) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__19] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4907(line=178, offs=26) -- 4938(line=179, offs=26)
+*/
+/*
+local: 
+global: is_perfect_ats$122$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret308, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp311, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4892(line=178, offs=11) -- 4938(line=179, offs=26)
+*/
+ATSINSflab(__patsflab_is_perfect_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4915(line=179, offs=3) -- 4933(line=179, offs=21)
+*/
+ATSINSmove(tmp311, sum_divisors_ats(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4915(line=179, offs=3) -- 4938(line=179, offs=26)
+*/
+ATSINSmove(tmpret308, ATSLIB_056_prelude__eq_g0int_int__10__20(tmp311, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret308) ;
+} /* end of [is_perfect_ats] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$20(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__20(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__20, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__20, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__20, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__20, atspre_g0int_eq_int(arg0, tmp16__20)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__20) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__20] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4944(line=181, offs=5) -- 5254(line=195, offs=8)
+*/
+/*
+local: rip_124$0(level=0)
+global: rip_124$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+rip_124(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(tmpret312, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp313, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp318, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp319, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp322, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref323, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp324, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 4944(line=181, offs=5) -- 5254(line=195, offs=8)
+*/
+ATSINSflab(__patsflab_rip_124):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5066(line=182, offs=6) -- 5071(line=182, offs=11)
+*/
+ATSINSmove(tmp318, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5066(line=182, offs=6) -- 5076(line=182, offs=16)
+*/
+ATSINSmove(tmp313, ATSLIB_056_prelude__neq_g0int_int__125__1(tmp318, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5063(line=182, offs=3) -- 5254(line=195, offs=8)
+*/
+ATSif(
+tmp313
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5086(line=183, offs=5) -- 5087(line=183, offs=6)
+*/
+ATSINSmove(tmpret312, arg0) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5102(line=185, offs=8) -- 5107(line=185, offs=13)
+*/
+ATSINSmove(tmp322, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5102(line=185, offs=8) -- 5111(line=185, offs=17)
+*/
+ATSINSmove(tmp319, ATSLIB_056_prelude__gt_g1int_int__4__6(tmp322, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5099(line=185, offs=5) -- 5254(line=195, offs=8)
+*/
+ATSif(
+tmp319
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5123(line=186, offs=7) -- 5237(line=193, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5139(line=187, offs=13) -- 5141(line=187, offs=15)
+*/
+/*
+ATSINStmpdec(tmpref323) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5144(line=187, offs=18) -- 5149(line=187, offs=23)
+*/
+ATSINSmove(tmpref323, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5170(line=189, offs=12) -- 5176(line=189, offs=18)
+*/
+ATSINSmove(tmp324, ATSLIB_056_prelude__lt_g1int_int__50__2(tmpref323, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5167(line=189, offs=9) -- 5227(line=192, offs=12)
+*/
+ATSif(
+tmp324
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5192(line=190, offs=11) -- 5202(line=190, offs=21)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmpref323) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_rip_124) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5226(line=192, offs=11) -- 5227(line=192, offs=12)
+*/
+ATSINSmove(tmpret312, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5123(line=186, offs=7) -- 5237(line=193, offs=10)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5253(line=195, offs=7) -- 5254(line=195, offs=8)
+*/
+ATSINSmove(tmpret312, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret312) ;
+} /* end of [rip_124] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12337(line=639, offs=3) -- 12377(line=639, offs=43)
+*/
+/*
+local: 
+global: neq_g0int_int$125$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4629)
+tmparg = S2Evar(tk(4629))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g0int_int__125(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret314, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp315, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12321(line=638, offs=1) -- 12377(line=639, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12364(line=639, offs=30) -- 12375(line=639, offs=41)
+*/
+ATSINSmove(tmp315, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4629))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12346(line=639, offs=12) -- 12377(line=639, offs=43)
+*/
+ATSINSmove(tmpret314, PMVtmpltcst(g0int_neq<S2Evar(tk(4629))>)(arg0, tmp315)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret314) ;
+} /* end of [ATSLIB_056_prelude__neq_g0int_int__125] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12337(line=639, offs=3) -- 12377(line=639, offs=43)
+*/
+/*
+local: 
+global: neq_g0int_int$125$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4629)
+tmparg = S2Evar(tk(4629))
+tmpsub = Some(tk(4629) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g0int_int__125__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret314__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp315__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12321(line=638, offs=1) -- 12377(line=639, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12364(line=639, offs=30) -- 12375(line=639, offs=41)
+*/
+ATSINSmove(tmp315__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12346(line=639, offs=12) -- 12377(line=639, offs=43)
+*/
+ATSINSmove(tmpret314__1, atspre_g0int_neq_int(arg0, tmp315__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret314__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g0int_int__125__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$6(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__6, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__6, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__6, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__6, atspre_g1int_gt_int(arg0, tmp9__6)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__6) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__6] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = Some(tk(4631) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108__2, atspre_g1int_lt_int(arg0, tmp109__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108__2) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5280(line=197, offs=25) -- 5841(line=215, offs=6)
+*/
+/*
+local: is_prime_48$0(level=0), rip_124$0(level=0)
+global: sqrt_int_46$0(level=0), is_prime_48$0(level=0), rip_124$0(level=0), prime_factors$130$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret327, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5266(line=197, offs=11) -- 5841(line=215, offs=6)
+*/
+ATSINSflab(__patsflab_prime_factors):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5288(line=198, offs=3) -- 5841(line=215, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5825(line=214, offs=5) -- 5835(line=214, offs=15)
+*/
+ATSINSmove(tmpret327, loop_131(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5288(line=198, offs=3) -- 5841(line=215, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret327) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5300(line=199, offs=9) -- 5815(line=212, offs=27)
+*/
+/*
+local: is_prime_48$0(level=0), rip_124$0(level=0), loop_131$0(level=1)
+global: is_prime_48$0(level=0), rip_124$0(level=0), loop_131$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_131(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(tmpret328, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp329, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp332, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp337, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp338, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp341, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp342, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp345, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp352, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5300(line=199, offs=9) -- 5815(line=212, offs=27)
+*/
+ATSINSflab(__patsflab_loop_131):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5398(line=200, offs=10) -- 5406(line=200, offs=18)
+*/
+ATSINSmove(tmp329, ATSLIB_056_prelude__gte_g1int_int__71__3(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5395(line=200, offs=7) -- 5815(line=212, offs=27)
+*/
+ATSif(
+tmp329
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5423(line=201, offs=12) -- 5433(line=201, offs=22)
+*/
+ATSINSmove(tmp332, is_prime_48(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5420(line=201, offs=9) -- 5546(line=204, offs=33)
+*/
+ATSif(
+tmp332
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5450(line=202, offs=11) -- 5500(line=202, offs=61)
+*/
+ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_133, (arg0))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5524(line=204, offs=11) -- 5546(line=204, offs=33)
+*/
+ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_135, ())) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5569(line=206, offs=12) -- 5596(line=206, offs=39)
+*/
+ATSINSmove(tmp341, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5569(line=206, offs=12) -- 5596(line=206, offs=39)
+*/
+ATSINSmove(tmp338, ATSLIB_056_prelude__eq_g0int_int__10__21(tmp341, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5569(line=206, offs=12) -- 5596(line=206, offs=39)
+*/
+ATSif(
+tmp338
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5569(line=206, offs=12) -- 5596(line=206, offs=39)
+*/
+ATSINSmove(tmp337, is_prime_48(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5569(line=206, offs=12) -- 5596(line=206, offs=39)
+*/
+ATSINSmove(tmp337, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5566(line=206, offs=9) -- 5815(line=212, offs=27)
+*/
+ATSif(
+tmp337
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5616(line=207, offs=14) -- 5623(line=207, offs=21)
+*/
+ATSINSmove(tmp345, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5616(line=207, offs=14) -- 5627(line=207, offs=25)
+*/
+ATSINSmove(tmp342, ATSLIB_056_prelude__gt_g1int_int__4__7(tmp345, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5613(line=207, offs=11) -- 5775(line=210, offs=65)
+*/
+ATSif(
+tmp342
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5645(line=208, offs=13) -- 5695(line=208, offs=63)
+*/
+ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_138, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5723(line=210, offs=13) -- 5775(line=210, offs=65)
+*/
+ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_139, (arg1))) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5807(line=212, offs=19) -- 5814(line=212, offs=26)
+*/
+ATSINSmove(tmp352, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5799(line=212, offs=11) -- 5815(line=212, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp352) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_131) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret328) ;
+} /* end of [loop_131] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$71$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4640)
+tmparg = S2Evar(tk(4640))
+tmpsub = Some(tk(4640) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp150__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp150__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret149__3, atspre_g1int_gte_int(arg0, tmp150__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret149__3) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__71__3] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5450(line=202, offs=11) -- 5500(line=202, offs=61)
+*/
+/*
+local: 
+global: __patsfun_133$0(level=2)
+local: n$5165(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5165(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_133(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret333, atstype_boxed) ;
+ATStmpdec(tmp334, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5450(line=202, offs=11) -- 5500(line=202, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_133):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5450(line=202, offs=11) -- 5500(line=202, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5476(line=202, offs=37) -- 5498(line=202, offs=59)
+*/
+ATSINSmove_ldelay(tmp334, atstype_boxed, ATSPMVcfunlab(1, __patsfun_134, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5458(line=202, offs=19) -- 5499(line=202, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret333, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret333, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret333, postiats_tysum_1, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret333, postiats_tysum_1, atslab__1, tmp334) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret333) ;
+} /* end of [__patsfun_133] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5476(line=202, offs=37) -- 5498(line=202, offs=59)
+*/
+/*
+local: 
+global: __patsfun_134$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_134(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret335, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5476(line=202, offs=37) -- 5498(line=202, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_134):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5476(line=202, offs=37) -- 5498(line=202, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5484(line=202, offs=45) -- 5497(line=202, offs=58)
+*/
+
+ATSINSmove_nil(tmpret335) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret335) ;
+} /* end of [__patsfun_134] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5524(line=204, offs=11) -- 5546(line=204, offs=33)
+*/
+/*
+local: 
+global: __patsfun_135$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_135(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret336, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5524(line=204, offs=11) -- 5546(line=204, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_135):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5524(line=204, offs=11) -- 5546(line=204, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5532(line=204, offs=19) -- 5545(line=204, offs=32)
+*/
+
+ATSINSmove_nil(tmpret336) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret336) ;
+} /* end of [__patsfun_135] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$21(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__21(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__21, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__21, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__21, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__21, atspre_g0int_eq_int(arg0, tmp16__21)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__21) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__21] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__7, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__7, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__7, atspre_g1int_gt_int(arg0, tmp9__7)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__7) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__7] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5645(line=208, offs=13) -- 5695(line=208, offs=63)
+*/
+/*
+local: rip_124$0(level=0), loop_131$0(level=1)
+global: rip_124$0(level=0), loop_131$0(level=1), __patsfun_138$0(level=2)
+local: n$5165(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5166(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5165(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5166(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_138(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret346, atstype_boxed) ;
+ATStmpdec(tmp347, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp348, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5645(line=208, offs=13) -- 5695(line=208, offs=63)
+*/
+ATSINSflab(__patsflab___patsfun_138):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5645(line=208, offs=13) -- 5695(line=208, offs=63)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5678(line=208, offs=46) -- 5689(line=208, offs=57)
+*/
+ATSINSmove(tmp348, rip_124(env0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5673(line=208, offs=41) -- 5693(line=208, offs=61)
+*/
+ATSINSmove(tmp347, loop_131(tmp348, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5653(line=208, offs=21) -- 5694(line=208, offs=62)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret346, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret346, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret346, postiats_tysum_1, atslab__0, env1) ;
+ATSINSstore_con1_ofs(tmpret346, postiats_tysum_1, atslab__1, tmp347) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret346) ;
+} /* end of [__patsfun_138] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5723(line=210, offs=13) -- 5775(line=210, offs=65)
+*/
+/*
+local: 
+global: __patsfun_139$0(level=2)
+local: acc$5166(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5166(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_139(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret349, atstype_boxed) ;
+ATStmpdec(tmp350, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5723(line=210, offs=13) -- 5775(line=210, offs=65)
+*/
+ATSINSflab(__patsflab___patsfun_139):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5723(line=210, offs=13) -- 5775(line=210, offs=65)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5751(line=210, offs=41) -- 5773(line=210, offs=63)
+*/
+ATSINSmove_ldelay(tmp350, atstype_boxed, ATSPMVcfunlab(1, __patsfun_140, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5731(line=210, offs=21) -- 5774(line=210, offs=64)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret349, postiats_tysum_1) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret349, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret349, postiats_tysum_1, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret349, postiats_tysum_1, atslab__1, tmp350) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret349) ;
+} /* end of [__patsfun_139] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5751(line=210, offs=41) -- 5773(line=210, offs=63)
+*/
+/*
+local: 
+global: __patsfun_140$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_140(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret351, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5751(line=210, offs=41) -- 5773(line=210, offs=63)
+*/
+ATSINSflab(__patsflab___patsfun_140):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5751(line=210, offs=41) -- 5773(line=210, offs=63)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5759(line=210, offs=49) -- 5772(line=210, offs=62)
+*/
+
+ATSINSmove_nil(tmpret351) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret351) ;
+} /* end of [__patsfun_140] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5870(line=217, offs=28) -- 6279(line=235, offs=6)
+*/
+/*
+local: is_prime_48$0(level=0), rip_124$0(level=0)
+global: sqrt_int_46$0(level=0), is_prime_48$0(level=0), rip_124$0(level=0), little_omega_ats$141$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret353, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5853(line=217, offs=11) -- 6279(line=235, offs=6)
+*/
+ATSINSflab(__patsflab_little_omega_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5878(line=218, offs=3) -- 6279(line=235, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6263(line=234, offs=5) -- 6273(line=234, offs=15)
+*/
+ATSINSmove(tmpret353, loop_142(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5878(line=218, offs=3) -- 6279(line=235, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret353) ;
+} /* end of [little_omega_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5890(line=219, offs=9) -- 6253(line=232, offs=27)
+*/
+/*
+local: is_prime_48$0(level=0), rip_124$0(level=0), loop_142$0(level=1)
+global: is_prime_48$0(level=0), rip_124$0(level=0), loop_142$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_142(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(tmpret354, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp355, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp358, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp359, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp360, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp363, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp364, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp367, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp368, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp369, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp370, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5890(line=219, offs=9) -- 6253(line=232, offs=27)
+*/
+ATSINSflab(__patsflab_loop_142):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5983(line=220, offs=10) -- 5991(line=220, offs=18)
+*/
+ATSINSmove(tmp355, ATSLIB_056_prelude__gte_g1int_int__71__4(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 5980(line=220, offs=7) -- 6253(line=232, offs=27)
+*/
+ATSif(
+tmp355
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6008(line=221, offs=12) -- 6018(line=221, offs=22)
+*/
+ATSINSmove(tmp358, is_prime_48(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6005(line=221, offs=9) -- 6061(line=224, offs=12)
+*/
+ATSif(
+tmp358
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6035(line=222, offs=11) -- 6036(line=222, offs=12)
+*/
+ATSINSmove(tmpret354, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6060(line=224, offs=11) -- 6061(line=224, offs=12)
+*/
+ATSINSmove(tmpret354, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6084(line=226, offs=12) -- 6111(line=226, offs=39)
+*/
+ATSINSmove(tmp363, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6084(line=226, offs=12) -- 6111(line=226, offs=39)
+*/
+ATSINSmove(tmp360, ATSLIB_056_prelude__eq_g0int_int__10__22(tmp363, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6084(line=226, offs=12) -- 6111(line=226, offs=39)
+*/
+ATSif(
+tmp360
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6084(line=226, offs=12) -- 6111(line=226, offs=39)
+*/
+ATSINSmove(tmp359, is_prime_48(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6084(line=226, offs=12) -- 6111(line=226, offs=39)
+*/
+ATSINSmove(tmp359, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6081(line=226, offs=9) -- 6253(line=232, offs=27)
+*/
+ATSif(
+tmp359
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6131(line=227, offs=14) -- 6138(line=227, offs=21)
+*/
+ATSINSmove(tmp367, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6131(line=227, offs=14) -- 6142(line=227, offs=25)
+*/
+ATSINSmove(tmp364, ATSLIB_056_prelude__gt_g1int_int__4__8(tmp367, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6128(line=227, offs=11) -- 6213(line=230, offs=14)
+*/
+ATSif(
+tmp364
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6169(line=228, offs=22) -- 6180(line=228, offs=33)
+*/
+ATSINSmove(tmp369, rip_124(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6164(line=228, offs=17) -- 6184(line=228, offs=37)
+*/
+ATSINSmove(tmp368, loop_142(tmp369, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6160(line=228, offs=13) -- 6184(line=228, offs=37)
+*/
+ATSINSmove(tmpret354, atspre_g0int_add_int(ATSPMVi0nt(1), tmp368)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6212(line=230, offs=13) -- 6213(line=230, offs=14)
+*/
+ATSINSmove(tmpret354, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6245(line=232, offs=19) -- 6252(line=232, offs=26)
+*/
+ATSINSmove(tmp370, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6237(line=232, offs=11) -- 6253(line=232, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp370) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_142) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret354) ;
+} /* end of [loop_142] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$71$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4640)
+tmparg = S2Evar(tk(4640))
+tmpsub = Some(tk(4640) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__71__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp150__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp150__4, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret149__4, atspre_g1int_gte_int(arg0, tmp150__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret149__4) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__71__4] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$22(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__22(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__22, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__22, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__22, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__22, atspre_g0int_eq_int(arg0, tmp16__22)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__22) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__22] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$8(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__8, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__8, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__8, atspre_g1int_gt_int(arg0, tmp9__8)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__8) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__8] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6303(line=237, offs=23) -- 6593(line=249, offs=8)
+*/
+/*
+local: 
+global: radical_ats$146$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+radical_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret371, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref372, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6291(line=237, offs=11) -- 6593(line=249, offs=8)
+*/
+ATSINSflab(__patsflab_radical_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6311(line=238, offs=3) -- 6593(line=249, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6328(line=239, offs=7) -- 6329(line=239, offs=8)
+*/
+ATSINSlab(__atstmplab33):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6304(line=237, offs=24) -- 6305(line=237, offs=25)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab35) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6329(line=239, offs=8) -- 6329(line=239, offs=8)
+*/
+ATSINSlab(__atstmplab34):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6333(line=239, offs=12) -- 6334(line=239, offs=13)
+*/
+ATSINSmove(tmpret371, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6342(line=240, offs=8) -- 6342(line=240, offs=8)
+*/
+ATSINSlab(__atstmplab35):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6347(line=240, offs=13) -- 6593(line=249, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6361(line=241, offs=11) -- 6362(line=241, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref372) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6381(line=241, offs=31) -- 6396(line=241, offs=46)
+*/
+ATSINSmove(tmpref372, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6575(line=248, offs=7) -- 6584(line=248, offs=16)
+*/
+ATSINSmove(tmpret371, product_147(tmpref372)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6347(line=240, offs=13) -- 6593(line=249, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret371) ;
+} /* end of [radical_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6415(line=243, offs=11) -- 6561(line=246, offs=34)
+*/
+/*
+local: product_147$0(level=1)
+global: product_147$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+product_147(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret373, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp374, atstype_boxed) ;
+ATStmpdec(tmp375, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp376, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp377, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6415(line=243, offs=11) -- 6561(line=246, offs=34)
+*/
+ATSINSflab(__patsflab_product_147):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6466(line=244, offs=15) -- 6469(line=244, offs=18)
+*/
+ATSINSmove_llazyeval(tmp374, atstype_boxed, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6460(line=244, offs=9) -- 6561(line=246, offs=34)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6485(line=245, offs=13) -- 6508(line=245, offs=36)
+*/
+ATSINSlab(__atstmplab36):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6466(line=244, offs=15) -- 6469(line=244, offs=18)
+*/
+ATSifthen(ATSCKptrisnull(tmp374)) { ATSINSgoto(__atstmplab39) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6508(line=245, offs=36) -- 6508(line=245, offs=36)
+*/
+ATSINSlab(__atstmplab37):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6502(line=245, offs=30) -- 6503(line=245, offs=31)
+*/
+ATSINSmove(tmp375, ATSSELcon(tmp374, postiats_tysum_1, atslab__0)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6505(line=245, offs=33) -- 6507(line=245, offs=35)
+*/
+ATSINSmove(tmp376, ATSSELcon(tmp374, postiats_tysum_1, atslab__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6485(line=245, offs=13) -- 6527(line=245, offs=55)
+*/
+ATSINSfreecon(tmp374) ;
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6516(line=245, offs=44) -- 6526(line=245, offs=54)
+*/
+ATSINSmove(tmp377, product_147(tmp376)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6512(line=245, offs=40) -- 6526(line=245, offs=54)
+*/
+ATSINSmove(tmpret373, atspre_g0int_mul_int(tmp375, tmp377)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6540(line=246, offs=13) -- 6556(line=246, offs=29)
+*/
+ATSINSlab(__atstmplab38):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6466(line=244, offs=15) -- 6469(line=244, offs=18)
+*/
+#if(0)
+ATSifthen(ATSCKptriscons(tmp374)) { ATSINSdeadcode_fail() ; } ;
+#endif
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6556(line=246, offs=29) -- 6556(line=246, offs=29)
+*/
+ATSINSlab(__atstmplab39):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6560(line=246, offs=33) -- 6561(line=246, offs=34)
+*/
+ATSINSmove(tmpret373, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret373) ;
+} /* end of [product_147] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6598(line=251, offs=4) -- 7147(line=265, offs=8)
+*/
+/*
+local: 
+global: totient_148$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_148(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret378, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref383, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref384, postiats_tyrec_0) ;
+ATStmpdec(tmpref385, postiats_tyrec_0) ;
+ATStmpdec(tmp403, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6598(line=251, offs=4) -- 7147(line=265, offs=8)
+*/
+ATSINSflab(__patsflab_totient_148):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6631(line=252, offs=3) -- 7147(line=265, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6648(line=253, offs=7) -- 6649(line=253, offs=8)
+*/
+ATSINSlab(__atstmplab40):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6606(line=251, offs=12) -- 6607(line=251, offs=13)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab42) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6649(line=253, offs=8) -- 6649(line=253, offs=8)
+*/
+ATSINSlab(__atstmplab41):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6653(line=253, offs=12) -- 6654(line=253, offs=13)
+*/
+ATSINSmove(tmpret378, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6662(line=254, offs=8) -- 6662(line=254, offs=8)
+*/
+ATSINSlab(__atstmplab42):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6667(line=254, offs=13) -- 7147(line=265, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6881(line=260, offs=11) -- 6882(line=260, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref383) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6901(line=260, offs=31) -- 6916(line=260, offs=46)
+*/
+ATSINSmove(tmpref383, _057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__prime_factors(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6928(line=261, offs=11) -- 6938(line=261, offs=21)
+*/
+/*
+ATSINStmpdec(tmpref384) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6941(line=261, offs=24) -- 6967(line=261, offs=50)
+*/
+ATSINSmove_fltrec_beg()
+ATSINSstore_fltrec_ofs(tmpref384, postiats_tyrec_0, atslab__first, ATSPMVi0nt(1)) ;
+ATSINSstore_fltrec_ofs(tmpref384, postiats_tyrec_0, atslab__second, ATSPMVi0nt(1)) ;
+ATSINSmove_fltrec_end()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6985(line=262, offs=11) -- 6986(line=262, offs=12)
+*/
+/*
+ATSINStmpdec(tmpref385) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6989(line=262, offs=15) -- 7076(line=262, offs=102)
+*/
+ATSINSmove(tmpref385, ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151__1(tmpref383, tmpref384, ATSPMVcfunlab(1, __patsfun_155, ()))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7107(line=264, offs=17) -- 7128(line=264, offs=38)
+*/
+ATSINSmove(tmp403, atspre_g0int_mul_int(arg0, ATSSELfltrec(tmpref385, postiats_tyrec_0, atslab__first))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7097(line=264, offs=7) -- 7139(line=264, offs=49)
+*/
+ATSINSmove(tmpret378, atspre_g0int_div_int(tmp403, ATSSELfltrec(tmpref385, postiats_tyrec_0, atslab__second))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6667(line=254, offs=13) -- 7147(line=265, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret378) ;
+} /* end of [totient_148] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6740(line=257, offs=10) -- 6863(line=258, offs=80)
+*/
+/*
+local: 
+global: adjust_contents_149$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+postiats_tyrec_0
+adjust_contents_149(postiats_tyrec_0 arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret379, postiats_tyrec_0) ;
+ATStmpdec(tmp380, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp381, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp382, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6740(line=257, offs=10) -- 6863(line=258, offs=80)
+*/
+ATSINSflab(__patsflab_adjust_contents_149):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6822(line=258, offs=39) -- 6827(line=258, offs=44)
+*/
+ATSINSmove(tmp381, atspre_g0int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6803(line=258, offs=20) -- 6828(line=258, offs=45)
+*/
+ATSINSmove(tmp380, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__first), tmp381)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6839(line=258, offs=56) -- 6861(line=258, offs=78)
+*/
+ATSINSmove(tmp382, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__second), arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 6792(line=258, offs=9) -- 6863(line=258, offs=80)
+*/
+ATSINSmove_fltrec_beg()
+ATSINSstore_fltrec_ofs(tmpret379, postiats_tyrec_0, atslab__first, tmp380) ;
+ATSINSstore_fltrec_ofs(tmpret379, postiats_tyrec_0, atslab__second, tmp382) ;
+ATSINSmove_fltrec_end()
+ATSfunbody_end()
+ATSreturn(tmpret379) ;
+} /* end of [adjust_contents_149] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 29943(line=1864, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+local: 
+global: stream_vt_foldleft_cloptr$151$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = res(8342), a(8343)
+tmparg = S2Evar(res(8342)); S2Evar(a(8343))
+tmpsub = None()
+*/
+atstyvar_type(res)
+ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151(atstkind_type(atstype_ptrk) arg0, atstyvar_type(res) arg1, atstype_cloptr arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret386, atstyvar_type(res)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29915(line=1863, offs=1) -- 30423(line=1895, offs=2)
+*/
+ATSINSflab(__patsflab_stream_vt_foldleft_cloptr):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 29984(line=1865, offs=23)
+*/
+ATSINSmove(tmpret386, ATSfunclo_fun(PMVd2vfunlab(d2v=loop$4484(1), flab=loop_152$0(level=1)), (atstkind_type(atstype_ptrk), atstyvar_type(res), atstype_cloptr), atstyvar_type(res))(arg0, arg1, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret386) ;
+} /* end of [ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
+*/
+/*
+local: loop_152$0(level=1)
+global: loop_152$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstyvar_type(res)
+loop_152__152(atstkind_type(atstype_ptrk) arg0, atstyvar_type(res) arg1, atstype_cloptr arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, atstyvar_type(res)) ;
+ATStmpdec(apy2, atstype_cloptr) ;
+ATStmpdec(tmpret387, atstyvar_type(res)) ;
+ATStmpdec(tmpref388, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp389, atstype_boxed) ;
+// ATStmpdec_void(tmp392) ;
+ATStmpdec(tmp393, atstyvar_type(res)) ;
+ATStmpdec(tmp394, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
+*/
+ATSINSflab(__patsflab_loop_152):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30088(line=1876, offs=7) -- 30094(line=1876, offs=13)
+*/
+/*
+ATSINStmpdec(tmpref388) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30097(line=1876, offs=16) -- 30100(line=1876, offs=19)
+*/
+ATSINSmove_llazyeval(tmpref388, atstype_boxed, arg0) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+ATSINSmove(tmp389, tmpref388) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30107(line=1879, offs=1) -- 30367(line=1891, offs=6)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30134(line=1882, offs=3) -- 30155(line=1883, offs=7)
+*/
+ATSINSlab(__atstmplab43):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+ATSifthen(ATSCKptriscons(tmp389)) { ATSINSgoto(__atstmplab46) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30155(line=1883, offs=7) -- 30155(line=1883, offs=7)
+*/
+ATSINSlab(__atstmplab44):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30167(line=1885, offs=5) -- 30199(line=1885, offs=37)
+*/
+ATSINSmove_void(tmp392, atspre_cloptr_free(ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30201(line=1885, offs=39) -- 30204(line=1885, offs=42)
+*/
+ATSINSmove(tmpret387, arg1) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30240(line=1887, offs=3) -- 30269(line=1888, offs=14)
+*/
+ATSINSlab(__atstmplab45):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+#if(0)
+ATSifthen(ATSCKptrisnull(tmp389)) { ATSINSdeadcode_fail() ; } ;
+#endif
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30269(line=1888, offs=14) -- 30269(line=1888, offs=14)
+*/
+ATSINSlab(__atstmplab46):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30291(line=1889, offs=15) -- 30304(line=1889, offs=28)
+*/
+ATSINSmove(tmp393, ATSfunclo_clo(ATSPMVrefarg0(arg2), (atstype_cloptr, atstyvar_type(res), atsrefarg1_type(atstyvar_type(a))), atstyvar_type(res))(ATSPMVrefarg0(arg2), arg1, ATSPMVrefarg1(ATSPMVptrof(ATSSELcon(tmp389, postiats_tysum_3, atslab__0))))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30319(line=1890, offs=15) -- 30322(line=1890, offs=18)
+*/
+ATSINSmove(tmp394, ATSSELcon(tmp389, postiats_tysum_3, atslab__1)) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30326(line=1890, offs=22) -- 30338(line=1890, offs=34)
+*/
+ATSINSfreecon(tmpref388) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30341(line=1890, offs=37) -- 30361(line=1890, offs=57)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp394) ;
+ATSINSmove_tlcal(apy1, tmp393) ;
+ATSINSmove_tlcal(apy2, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSfgoto(__patsflab_loop_152) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret387) ;
+} /* end of [loop_152__152] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 29943(line=1864, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+local: 
+global: stream_vt_foldleft_cloptr$151$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = res(8342), a(8343)
+tmparg = S2Evar(res(8342)); S2Evar(a(8343))
+tmpsub = Some(res(8342) -> S2EVar(5923); a(8343) -> S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int)))
+*/
+postiats_tyrec_0
+ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151__1(atstkind_type(atstype_ptrk) arg0, postiats_tyrec_0 arg1, atstype_cloptr arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret386__1, postiats_tyrec_0) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29915(line=1863, offs=1) -- 30423(line=1895, offs=2)
+*/
+ATSINSflab(__patsflab_stream_vt_foldleft_cloptr):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 29984(line=1865, offs=23)
+*/
+ATSINSmove(tmpret386__1, loop_152__152__1(arg0, arg1, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 29964(line=1865, offs=3) -- 30423(line=1895, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret386__1) ;
+} /* end of [ATSLIB_056_prelude__stream_vt_foldleft_cloptr__151__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
+*/
+/*
+local: loop_152$1(level=2)
+global: loop_152$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+postiats_tyrec_0
+loop_152__152__1(atstkind_type(atstype_ptrk) arg0, postiats_tyrec_0 arg1, atstype_cloptr arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, postiats_tyrec_0) ;
+ATStmpdec(apy2, atstype_cloptr) ;
+ATStmpdec(tmpret387__1, postiats_tyrec_0) ;
+ATStmpdec(tmpref388__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp389__1, atstype_boxed) ;
+// ATStmpdec_void(tmp392__1) ;
+ATStmpdec(tmp393__1, postiats_tyrec_0) ;
+ATStmpdec(tmp394__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30000(line=1869, offs=1) -- 30401(line=1893, offs=4)
+*/
+ATSINSflab(__patsflab_loop_152):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30088(line=1876, offs=7) -- 30094(line=1876, offs=13)
+*/
+/*
+ATSINStmpdec(tmpref388) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30097(line=1876, offs=16) -- 30100(line=1876, offs=19)
+*/
+ATSINSmove_llazyeval(tmpref388__1, atstype_boxed, arg0) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+ATSINSmove(tmp389__1, tmpref388__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30107(line=1879, offs=1) -- 30367(line=1891, offs=6)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30134(line=1882, offs=3) -- 30155(line=1883, offs=7)
+*/
+ATSINSlab(__atstmplab43):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+ATSifthen(ATSCKptriscons(tmp389__1)) { ATSINSgoto(__atstmplab46) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30155(line=1883, offs=7) -- 30155(line=1883, offs=7)
+*/
+ATSINSlab(__atstmplab44):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30167(line=1885, offs=5) -- 30199(line=1885, offs=37)
+*/
+ATSINSmove_void(tmp392__1, atspre_cloptr_free(ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30201(line=1885, offs=39) -- 30204(line=1885, offs=42)
+*/
+ATSINSmove(tmpret387__1, arg1) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30240(line=1887, offs=3) -- 30269(line=1888, offs=14)
+*/
+ATSINSlab(__atstmplab45):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30113(line=1880, offs=1) -- 30119(line=1880, offs=7)
+*/
+#if(0)
+ATSifthen(ATSCKptrisnull(tmp389__1)) { ATSINSdeadcode_fail() ; } ;
+#endif
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30269(line=1888, offs=14) -- 30269(line=1888, offs=14)
+*/
+ATSINSlab(__atstmplab46):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30291(line=1889, offs=15) -- 30304(line=1889, offs=28)
+*/
+ATSINSmove(tmp393__1, ATSfunclo_clo(ATSPMVrefarg0(arg2), (atstype_cloptr, postiats_tyrec_0, atsrefarg1_type(atstkind_t0ype(atstype_int))), postiats_tyrec_0)(ATSPMVrefarg0(arg2), arg1, ATSPMVrefarg1(ATSPMVptrof(ATSSELcon(tmp389__1, postiats_tysum_1, atslab__0))))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30319(line=1890, offs=15) -- 30322(line=1890, offs=18)
+*/
+ATSINSmove(tmp394__1, ATSSELcon(tmp389__1, postiats_tysum_1, atslab__1)) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30326(line=1890, offs=22) -- 30338(line=1890, offs=34)
+*/
+ATSINSfreecon(tmpref388__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30341(line=1890, offs=37) -- 30361(line=1890, offs=57)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp394__1) ;
+ATSINSmove_tlcal(apy1, tmp393__1) ;
+ATSINSmove_tlcal(apy2, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSfgoto(__patsflab_loop_152) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30273(line=1888, offs=18) -- 30367(line=1891, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats({$PATSPRE}/DATS/stream_vt.dats): 30078(line=1875, offs=6) -- 30401(line=1893, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret387__1) ;
+} /* end of [loop_152__152__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7030(line=262, offs=56) -- 7075(line=262, offs=101)
+*/
+/*
+local: adjust_contents_149$0(level=1)
+global: adjust_contents_149$0(level=1), __patsfun_155$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+postiats_tyrec_0
+__patsfun_155(postiats_tyrec_0 arg0, atsrefarg1_type(atstkind_t0ype(atstype_int)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret402, postiats_tyrec_0) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7030(line=262, offs=56) -- 7075(line=262, offs=101)
+*/
+ATSINSflab(__patsflab___patsfun_155):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7049(line=262, offs=75) -- 7075(line=262, offs=101)
+*/
+ATSINSmove(tmpret402, adjust_contents_149(arg0, ATSderef(arg1, atstkind_t0ype(atstype_int)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret402) ;
+} /* end of [__patsfun_155] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7171(line=267, offs=23) -- 7527(line=281, offs=6)
+*/
+/*
+local: totient_148$0(level=0)
+global: totient_148$0(level=0), totient_sum$156$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret404, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7159(line=267, offs=11) -- 7527(line=281, offs=6)
+*/
+ATSINSflab(__patsflab_totient_sum):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7179(line=268, offs=3) -- 7527(line=281, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7511(line=280, offs=5) -- 7521(line=280, offs=15)
+*/
+ATSINSmove(tmpret404, loop_157(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7179(line=268, offs=3) -- 7527(line=281, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret404) ;
+} /* end of [_057_home_057_vanessa_057_programming_057_haskell_057_done_057_hs_055_ats_057_fast_055_arithmetic_057_ats_055_src_057_number_055_theory_056_sats__totient_sum] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7191(line=269, offs=9) -- 7501(line=278, offs=40)
+*/
+/*
+local: totient_148$0(level=0), loop_157$0(level=1)
+global: totient_148$0(level=0), loop_157$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_157(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret405, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp406, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref409, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp410, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref411, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp416, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp421, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7191(line=269, offs=9) -- 7501(line=278, offs=40)
+*/
+ATSINSflab(__patsflab_loop_157):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7294(line=270, offs=10) -- 7303(line=270, offs=19)
+*/
+ATSINSmove(tmp406, ATSLIB_056_prelude__lt_g1int_int__50__3(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7291(line=270, offs=7) -- 7501(line=278, offs=40)
+*/
+ATSif(
+tmp406
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7317(line=271, offs=9) -- 7450(line=276, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7335(line=272, offs=15) -- 7336(line=272, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref409) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7344(line=272, offs=24) -- 7349(line=272, offs=29)
+*/
+ATSINSmove(tmp410, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7339(line=272, offs=19) -- 7357(line=272, offs=37)
+*/
+ATSINSmove(tmpref409, loop_157(tmp410, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7372(line=273, offs=15) -- 7373(line=273, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref411) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7403(line=273, offs=46) -- 7412(line=273, offs=55)
+*/
+ATSINSmove(tmp416, totient_148(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7376(line=273, offs=19) -- 7415(line=273, offs=58)
+*/
+ATSINSmove(tmpref411, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159__1(tmpref409, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp416))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7437(line=275, offs=11) -- 7438(line=275, offs=12)
+*/
+ATSINSmove(tmpret405, tmpref411) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7317(line=271, offs=9) -- 7450(line=276, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7470(line=278, offs=9) -- 7501(line=278, offs=40)
+*/
+ATSINSmove(tmp421, totient_148(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7470(line=278, offs=9) -- 7501(line=278, offs=40)
+*/
+ATSINSmove(tmpret405, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__2(ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmp421))) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret405) ;
+} /* end of [loop_157] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = Some(tk(4631) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108__3, atspre_g1int_lt_int(arg0, tmp109__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108__3) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50__3] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$159$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret412, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp413) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp413, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret412, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret412) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$159$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret412__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp413__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp413__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret412__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret412__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__159__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$43$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__2(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94__2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp95__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp96__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp95__2, ATSLIB_056_prelude__ptr_alloc__1__5()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp96__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp95__2, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret94__2, tmp95__2) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$5(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__5()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__5, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__5) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__5] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7551(line=283, offs=23) -- 7568(line=284, offs=12)
+*/
+/*
+local: totient_148$0(level=0)
+global: totient_148$0(level=0), totient_ats$163$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret422, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7539(line=283, offs=11) -- 7569(line=284, offs=13)
+*/
+ATSINSflab(__patsflab_totient_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7559(line=284, offs=3) -- 7568(line=284, offs=12)
+*/
+ATSINSmove(tmpret422, totient_148(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret422) ;
+} /* end of [totient_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7592(line=286, offs=22) -- 7625(line=287, offs=25)
+*/
+/*
+local: jacobi_87$0(level=0)
+global: exp_3$0(level=0), sqrt_int_46$0(level=0), is_prime_48$0(level=0), div_gt_zero_86$0(level=0), jacobi_87$0(level=0), jacobi_ats$164$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+jacobi_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret423, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7581(line=286, offs=11) -- 7625(line=287, offs=25)
+*/
+ATSINSflab(__patsflab_jacobi_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/number-theory.dats: 7603(line=287, offs=3) -- 7625(line=287, offs=25)
+*/
+ATSINSmove(tmpret423, jacobi_87(arg0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret423) ;
 } /* end of [jacobi_ats] */
 
 /*
diff --git a/cbits/numerics.c b/cbits/numerics.c
--- a/cbits/numerics.c
+++ b/cbits/numerics.c
@@ -1,3427 +1,3408 @@
 /*
 **
-** The C code is generated by [ATS/Postiats-0-3-11]
-**
-*/
-
-/*
-** 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)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-hx-libgmp/CATS/gmp.cats"
-//
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/math.cats"
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 204(line=9, offs=1) -- 375(line=15, offs=3)
-*/
-ATSextcode_beg()
-#ifndef LIBRARY_BUILD
-#define ATS_MEMALLOC_LIBC *)
-#include "ccomp/runtime/pats_ccomp_memalloc_libc.h"
-#include "ccomp/runtime/pats_ccomp_runtime_memalloc.c"
-#endif
-ATSextcode_end()
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-ATSdyncst_mac(atspre_g0int2uint_int_uint)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init)
-ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
-ATSdyncst_mac(atspre_g1int2int_int_int)
-ATSdyncst_mac(atspre_g1int_gt_int)
-ATSdyncst_mac(atspre_g1int_half_int)
-ATSdyncst_mac(atspre_g0int_mod_int)
-ATSdyncst_mac(atspre_g0int2int_int_int)
-ATSdyncst_mac(atspre_g0int_eq_int)
-ATSdyncst_mac(atspre_g0int_mul_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_cmp_int)
-ATSdyncst_mac(atspre_g0int_lt_int)
-ATSdyncst_mac(atspre_g1int_neg_int)
-ATSdyncst_mac(atspre_g0int_gt_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_clear)
-ATSdyncst_mac(atspre_ptr_free)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_g0float2int_double_int)
-ATSdyncst_mac(atslib_libats_libc_sqrt_double)
-ATSdyncst_mac(atspre_g0int2float_int_double)
-ATSdyncst_mac(atspre_g1int_lt_int)
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-ATSextern()
-atsvoid_t0ype
-the_atsexncon_initize
-(
-  atstype_exnconptr d2c, atstype_string exnmsg
-) ;
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-/*
-exnconlst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-/*
-assumelst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
-/*
-assumelst-declaration(end)
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_0(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__1() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-big_exp_17(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_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__eq_g1int_int__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_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__lt_g0int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27(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_g0int_int__27__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__2() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__3() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__4() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_48(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_50(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_51(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__52(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__52__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_prime_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 390(line=11, offs=4) -- 592(line=19, offs=6)
-*/
-/*
-local: 
-global: fib_gmp_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref4, atstkind_t0ype(atstype_uint)) ;
-ATStmpdec(tmp5, atstkind_t0ype(atstype_int)) ;
-// ATStmpdec_void(tmp6) ;
-// ATStmpdec_void(tmp7) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 390(line=11, offs=4) -- 592(line=19, offs=6)
-*/
-ATSINSflab(__patsflab_fib_gmp_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 426(line=12, offs=3) -- 592(line=19, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 438(line=13, offs=9) -- 439(line=13, offs=10)
-*/
-/*
-ATSINStmpdec(tmpref1) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 442(line=13, offs=13) -- 453(line=13, offs=24)
-*/
-ATSINSmove(tmpref1, ATSLIB_056_prelude__ptr_alloc__1__1()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 462(line=14, offs=9) -- 463(line=14, offs=10)
-*/
-/*
-ATSINStmpdec(tmpref4) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 477(line=14, offs=24) -- 482(line=14, offs=29)
-*/
-ATSINSmove(tmp5, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 466(line=14, offs=13) -- 483(line=14, offs=30)
-*/
-ATSINSmove(tmpref4, atspre_g0int2uint_int_uint(tmp5)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 497(line=15, offs=14) -- 518(line=15, offs=35)
-*/
-ATSINSmove_void(tmp6, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 532(line=16, offs=14) -- 560(line=16, offs=42)
-*/
-ATSINSmove_void(tmp7, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)), tmpref4)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 570(line=18, offs=5) -- 585(line=18, offs=20)
-*/
-ATSINSmove(tmpret0, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 426(line=12, offs=3) -- 592(line=19, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [fib_gmp_0] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2EVar(5559))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 769(line=24, offs=5) -- 1208(line=45, offs=10)
-*/
-/*
-local: exp_5$0(level=0)
-global: exp_5$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret8, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref14, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref15, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp16, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp21, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref22, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp24, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 769(line=24, offs=5) -- 1208(line=45, offs=10)
-*/
-ATSINSflab(__patsflab_exp_5):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 819(line=25, offs=3) -- 1208(line=45, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 836(line=26, offs=7) -- 837(line=26, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 788(line=24, offs=24) -- 789(line=24, offs=25)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 837(line=26, offs=8) -- 837(line=26, offs=8)
-*/
-ATSINSlab(__atstmplab1):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 841(line=26, offs=12) -- 842(line=26, offs=13)
-*/
-ATSINSmove(tmpret8, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 850(line=27, offs=8) -- 850(line=27, offs=8)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 879(line=29, offs=12) -- 884(line=29, offs=17)
-*/
-ATSINSmove(tmp9, ATSLIB_056_prelude__gt_g1int_int__6__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 876(line=29, offs=9) -- 1198(line=44, offs=12)
-*/
-ATSif(
-tmp9
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 900(line=30, offs=11) -- 1173(line=42, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 920(line=31, offs=17) -- 922(line=31, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref14) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 925(line=31, offs=22) -- 931(line=31, offs=28)
-*/
-ATSINSmove(tmpref14, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 949(line=32, offs=17) -- 951(line=32, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref15) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 954(line=32, offs=22) -- 959(line=32, offs=27)
-*/
-ATSINSmove(tmpref15, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 988(line=34, offs=16) -- 994(line=34, offs=22)
-*/
-ATSINSmove(tmp16, ATSLIB_056_prelude__eq_g0int_int__12__1(tmpref15, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 985(line=34, offs=13) -- 1159(line=41, offs=18)
-*/
-ATSif(
-tmp16
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1018(line=35, offs=19) -- 1023(line=35, offs=24)
-*/
-ATSINSmove(tmp21, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1014(line=35, offs=15) -- 1028(line=35, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp21) ;
-ATSINSmove_tlcal(apy1, tmpref14) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_5) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1060(line=37, offs=15) -- 1159(line=41, offs=18)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1084(line=38, offs=21) -- 1085(line=38, offs=22)
-*/
-/*
-ATSINStmpdec(tmpref22) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1096(line=38, offs=33) -- 1101(line=38, offs=38)
-*/
-ATSINSmove(tmp24, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1092(line=38, offs=29) -- 1106(line=38, offs=43)
-*/
-ATSINSmove(tmp23, exp_5(tmp24, tmpref14)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1088(line=38, offs=25) -- 1106(line=38, offs=43)
-*/
-ATSINSmove(tmpref22, atspre_g0int_mul_int(arg0, tmp23)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1140(line=40, offs=17) -- 1141(line=40, offs=18)
-*/
-ATSINSmove(tmpret8, tmpref22) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1060(line=37, offs=15) -- 1159(line=41, offs=18)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 900(line=30, offs=11) -- 1173(line=42, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1197(line=44, offs=11) -- 1198(line=44, offs=12)
-*/
-ATSINSmove(tmpret8, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret8) ;
-} /* end of [exp_5] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4633))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10, PMVtmpltcst(g1int_gt<S2Evar(tk(4633))>)(arg0, tmp11)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__1, atspre_g1int_gt_int(arg0, tmp11__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4624))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17, PMVtmpltcst(g0int_eq<S2Evar(tk(4624))>)(arg0, tmp18)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__1, atspre_g0int_eq_int(arg0, tmp18__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1246(line=48, offs=5) -- 1854(line=74, offs=39)
-*/
-/*
-local: big_exp_17$0(level=0)
-global: big_exp_17$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-big_exp_17(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret25, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp26, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp50, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref53, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref54, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp55, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref58, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref78, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref84, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmpref85, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp90) ;
-// ATStmpdec_void(tmp93) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1246(line=48, offs=5) -- 1854(line=74, offs=39)
-*/
-ATSINSflab(__patsflab_big_exp_17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1309(line=49, offs=6) -- 1333(line=49, offs=30)
-*/
-ATSINSmove(tmp31, ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(ATSPMVrefarg0(arg0), ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1309(line=49, offs=6) -- 1337(line=49, offs=34)
-*/
-ATSINSmove(tmp26, ATSLIB_056_prelude__eq_g1int_int__18__1(tmp31, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1306(line=49, offs=3) -- 1854(line=74, offs=39)
-*/
-ATSif(
-tmp26
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1347(line=50, offs=5) -- 1348(line=50, offs=6)
-*/
-ATSINSmove(tmpret25, arg0) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1363(line=52, offs=8) -- 1368(line=52, offs=13)
-*/
-ATSINSmove(tmp50, ATSLIB_056_prelude__gt_g1int_int__6__2(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1360(line=52, offs=5) -- 1854(line=74, offs=39)
-*/
-ATSif(
-tmp50
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1380(line=53, offs=7) -- 1806(line=72, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1396(line=54, offs=13) -- 1398(line=54, offs=15)
-*/
-/*
-ATSINStmpdec(tmpref53) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1401(line=54, offs=18) -- 1407(line=54, offs=24)
-*/
-ATSINSmove(tmpref53, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1421(line=55, offs=13) -- 1423(line=55, offs=15)
-*/
-/*
-ATSINStmpdec(tmpref54) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1426(line=55, offs=18) -- 1431(line=55, offs=23)
-*/
-ATSINSmove(tmpref54, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1452(line=57, offs=12) -- 1458(line=57, offs=18)
-*/
-ATSINSmove(tmp55, ATSLIB_056_prelude__eq_g0int_int__12__2(tmpref54, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1449(line=57, offs=9) -- 1796(line=71, offs=14)
-*/
-ATSif(
-tmp55
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1474(line=58, offs=11) -- 1569(line=62, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1494(line=59, offs=17) -- 1495(line=59, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref58) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1498(line=59, offs=21) -- 1514(line=59, offs=37)
-*/
-ATSINSmove(tmpref58, ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1541(line=61, offs=13) -- 1555(line=61, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmpref58) ;
-ATSINSmove_tlcal(apy1, tmpref53) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_big_exp_17) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1474(line=58, offs=11) -- 1569(line=62, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1593(line=64, offs=11) -- 1796(line=71, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1613(line=65, offs=17) -- 1615(line=65, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref78) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1618(line=65, offs=22) -- 1634(line=65, offs=38)
-*/
-ATSINSmove(tmpref78, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1652(line=66, offs=17) -- 1654(line=66, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref84) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1657(line=66, offs=22) -- 1672(line=66, offs=37)
-*/
-ATSINSmove(tmpref84, big_exp_17(tmpref78, tmpref53)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1689(line=67, offs=17) -- 1690(line=67, offs=18)
-*/
-/*
-ATSINStmpdec(tmpref85) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1693(line=67, offs=21) -- 1719(line=67, offs=47)
-*/
-ATSINSmove(tmpref85, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(tmpref84, ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1741(line=68, offs=22) -- 1754(line=68, offs=35)
-*/
-ATSINSmove_void(tmp90, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1781(line=70, offs=13) -- 1782(line=70, offs=14)
-*/
-ATSINSmove(tmpret25, tmpref85) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1593(line=64, offs=11) -- 1796(line=71, offs=14)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1380(line=53, offs=7) -- 1806(line=72, offs=10)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1823(line=74, offs=8) -- 1836(line=74, offs=21)
-*/
-ATSINSmove_void(tmp93, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1840(line=74, offs=25) -- 1853(line=74, offs=38)
-*/
-ATSINSmove(tmpret25, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(ATSPMVi0nt(1))) ;
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret25) ;
-} /* end of [big_exp_17] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4639))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27, PMVtmpltcst(g1int_eq<S2Evar(tk(4639))>)(arg0, tmp28)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27__1, atspre_g1int_eq_int(arg0, tmp28__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
-*/
-/*
-local: 
-global: compare_intinf_int$21$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret32, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp34, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp35, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp36, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
-*/
-ATSINSmove(tmp33, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
-*/
-ATSINSmove(tmp35, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp33, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
-*/
-ATSif(
-tmp35
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
-*/
-ATSINSmove(tmp34, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
-*/
-ATSINSmove(tmp36, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp33, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
-*/
-ATSif(
-tmp36
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
-*/
-ATSINSmove(tmp34, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
-*/
-ATSINSmove(tmp34, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} /* ATSendif */
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
-*/
-ATSINSmove(tmpret32, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp34)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret32) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
-*/
-/*
-local: 
-global: compare_intinf_int$21$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_t0ype(atstype_int)
-ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret32__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp35__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp36__1, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
-*/
-ATSINSmove(tmp33__1, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
-*/
-ATSINSmove(tmp35__1, ATSLIB_056_prelude__lt_g0int_int__23__1(tmp33__1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
-*/
-ATSif(
-tmp35__1
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
-*/
-ATSINSmove(tmp34__1, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
-*/
-ATSINSmove(tmp36__1, ATSLIB_056_prelude__gt_g0int_int__27__1(tmp33__1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
-*/
-ATSif(
-tmp36__1
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
-*/
-ATSINSmove(tmp34__1, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
-*/
-ATSINSmove(tmp34__1, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} /* ATSendif */
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
-*/
-ATSINSmove(tmpret32__1, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp34__1)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret32__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__21__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
-*/
-/*
-local: 
-global: lt_g0int_int$23$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4620)
-tmparg = S2Evar(tk(4620))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp43, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
-*/
-ATSINSmove(tmp43, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4620))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
-*/
-ATSINSmove(tmpret42, PMVtmpltcst(g0int_lt<S2Evar(tk(4620))>)(arg0, tmp43)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret42) ;
-} /* end of [ATSLIB_056_prelude__lt_g0int_int__23] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
-*/
-/*
-local: 
-global: lt_g0int_int$23$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4620)
-tmparg = S2Evar(tk(4620))
-tmpsub = Some(tk(4620) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g0int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret42__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp43__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
-*/
-ATSINSmove(tmp43__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
-*/
-ATSINSmove(tmpret42__1, atspre_g0int_lt_int(arg0, tmp43__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret42__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g0int_int__23__1] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
-*/
-/*
-local: 
-global: gt_g0int_int$27$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4622)
-tmparg = S2Evar(tk(4622))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret46, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp47, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
-*/
-ATSINSmove(tmp47, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4622))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
-*/
-ATSINSmove(tmpret46, PMVtmpltcst(g0int_gt<S2Evar(tk(4622))>)(arg0, tmp47)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret46) ;
-} /* end of [ATSLIB_056_prelude__gt_g0int_int__27] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
-*/
-/*
-local: 
-global: gt_g0int_int$27$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4622)
-tmparg = S2Evar(tk(4622))
-tmpsub = Some(tk(4622) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g0int_int__27__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret46__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp47__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g0int_int):
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
-*/
-ATSINSmove(tmp47__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
-*/
-ATSINSmove(tmpret46__1, atspre_g0int_gt_int(arg0, tmp47__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret46__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g0int_int__27__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4633)
-tmparg = S2Evar(tk(4633))
-tmpsub = Some(tk(4633) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp11__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret10__2, atspre_g1int_gt_int(arg0, tmp11__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__2, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__2, atspre_g0int_eq_int(arg0, tmp18__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
-*/
-/*
-local: 
-global: square_intinf0$32$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp60, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp61) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
-*/
-ATSINSmove(tmp60, PMVtmpltcst(square_intinf1<>)(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
-*/
-ATSINSmove_void(tmp61, PMVtmpltcst(intinf_free<>)(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
-*/
-ATSINSmove(tmpret59, tmp60) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret59) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
-*/
-/*
-local: 
-global: square_intinf0$32$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp60__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp61__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
-*/
-ATSINSmove(tmp60__1, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(ATSPMVrefarg0(arg0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
-*/
-ATSINSmove_void(tmp61__1, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
-*/
-ATSINSmove(tmpret59__1, tmp60__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret59__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__32__1] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67) ;
-// ATStmpdec_void(tmp68) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65, tmp66) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67__1) ;
-// ATStmpdec_void(tmp68__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66__1, ATSLIB_056_prelude__ptr_alloc__1__2()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67__1, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68__1, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65__1, tmp66__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$2(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__2] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74) ;
-// ATStmpdec_void(tmp75) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__1) ;
-// ATStmpdec_void(tmp75__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__1, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
-*/
-/*
-local: 
-global: square_intinf1$34$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65__2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp66__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp67__2) ;
-// ATStmpdec_void(tmp68__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
-*/
-ATSINSmove(tmp66__2, ATSLIB_056_prelude__ptr_alloc__1__3()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
-*/
-ATSINSmove_void(tmp67__2, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
-*/
-ATSINSmove_void(tmp68__2, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp66__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
-*/
-ATSINSmove(tmpret65__2, tmp66__2) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret65__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__34__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__3()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__3, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__3) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__3] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$41$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp87) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp87, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret86, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_intinf1$41$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp87__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
-*/
-ATSINSmove_void(tmp87__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
-*/
-ATSINSmove(tmpret86__1, arg0) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret86__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__41__1] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__2) ;
-// ATStmpdec_void(tmp75__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__2, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__2] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$37$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret74__3) ;
-// ATStmpdec_void(tmp75__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp75__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret74__3, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret74__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__37__3] */
-
-#if(0)
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$45$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret96, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp97, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp98) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp97, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp98, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp97, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret96, tmp97) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret96) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$45$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret96__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp97__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp98__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp97__1, ATSLIB_056_prelude__ptr_alloc__1__4()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp98__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp97__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret96__1, tmp97__1) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret96__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__45__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$1$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4736)
-tmparg = S2Evar(a(4736))
-tmpsub = Some(a(4736) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__1__4()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__4, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret2__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__4) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__1__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1900(line=77, offs=4) -- 2047(line=82, offs=6)
-*/
-/*
-local: 
-global: sqrt_int_48$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_48(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret103, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref104, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp105, atstkind_t0ype(atstype_double)) ;
-ATStmpdec(tmp106, atstkind_t0ype(atstype_double)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1900(line=77, offs=4) -- 2047(line=82, offs=6)
-*/
-ATSINSflab(__patsflab_sqrt_int_48):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1946(line=78, offs=3) -- 2047(line=82, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1958(line=79, offs=9) -- 1963(line=79, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref104) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1990(line=79, offs=41) -- 2014(line=79, offs=65)
-*/
-ATSINSmove(tmp106, atspre_g0int2float_int_double(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1978(line=79, offs=29) -- 2016(line=79, offs=67)
-*/
-ATSINSmove(tmp105, atslib_libats_libc_sqrt_double(tmp106)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1966(line=79, offs=17) -- 2017(line=79, offs=68)
-*/
-ATSINSmove(tmpref104, atspre_g0float2int_double_int(tmp105)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2027(line=81, offs=5) -- 2040(line=81, offs=18)
-*/
-ATSINSmove(tmpret103, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmpref104)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1946(line=78, offs=3) -- 2047(line=82, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret103) ;
-} /* end of [sqrt_int_48] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2083(line=85, offs=4) -- 2664(line=108, offs=10)
-*/
-/*
-local: sqrt_int_48$0(level=0)
-global: sqrt_int_48$0(level=0), is_prime_50$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_50(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret107, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp126, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2083(line=85, offs=4) -- 2664(line=108, offs=10)
-*/
-ATSINSflab(__patsflab_is_prime_50):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2119(line=86, offs=3) -- 2664(line=108, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2136(line=87, offs=7) -- 2137(line=87, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2092(line=85, offs=13) -- 2093(line=85, offs=14)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2137(line=87, offs=8) -- 2137(line=87, offs=8)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2141(line=87, offs=12) -- 2146(line=87, offs=17)
-*/
-ATSINSmove(tmpret107, ATSPMVbool_false()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2154(line=88, offs=8) -- 2154(line=88, offs=8)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2179(line=90, offs=9) -- 2654(line=107, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2630(line=106, offs=19) -- 2640(line=106, offs=29)
-*/
-ATSINSmove(tmp126, sqrt_int_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2622(line=106, offs=11) -- 2642(line=106, offs=31)
-*/
-ATSINSmove(tmpret107, loop_51(arg0, ATSPMVi0nt(2), tmp126)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2179(line=90, offs=9) -- 2654(line=107, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret107) ;
-} /* end of [is_prime_50] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2197(line=91, offs=15) -- 2600(line=104, offs=21)
-*/
-/*
-local: loop_51$0(level=1)
-global: loop_51$0(level=1)
-local: k$5098(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$5098(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_51(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(tmpret108, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp109, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp117, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp118, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp119, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp122, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2197(line=91, offs=15) -- 2600(line=104, offs=21)
-*/
-ATSINSflab(__patsflab_loop_51):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2287(line=92, offs=16) -- 2296(line=92, offs=25)
-*/
-ATSINSmove(tmp109, ATSLIB_056_prelude__lt_g1int_int__52__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2284(line=92, offs=13) -- 2600(line=104, offs=21)
-*/
-ATSif(
-tmp109
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2319(line=93, offs=18) -- 2324(line=93, offs=23)
-*/
-ATSINSmove(tmp117, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2319(line=93, offs=18) -- 2328(line=93, offs=27)
-*/
-ATSINSmove(tmp114, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp117, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2316(line=93, offs=15) -- 2409(line=96, offs=35)
-*/
-ATSif(
-tmp114
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2350(line=94, offs=17) -- 2355(line=94, offs=22)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2396(line=96, offs=22) -- 2401(line=96, offs=27)
-*/
-ATSINSmove(tmp118, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2391(line=96, offs=17) -- 2409(line=96, offs=35)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp118) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_51) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2444(line=98, offs=18) -- 2453(line=98, offs=27)
-*/
-ATSINSmove(tmp119, ATSLIB_056_prelude__eq_g1int_int__18__2(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2441(line=98, offs=15) -- 2600(line=104, offs=21)
-*/
-ATSif(
-tmp119
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2478(line=99, offs=20) -- 2483(line=99, offs=25)
-*/
-ATSINSmove(tmp125, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2478(line=99, offs=20) -- 2487(line=99, offs=29)
-*/
-ATSINSmove(tmp122, ATSLIB_056_prelude__eq_g0int_int__12__4(tmp125, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2475(line=99, offs=17) -- 2560(line=102, offs=23)
-*/
-ATSif(
-tmp122
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2511(line=100, offs=19) -- 2516(line=100, offs=24)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2556(line=102, offs=19) -- 2560(line=102, offs=23)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_true()) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2596(line=104, offs=17) -- 2600(line=104, offs=21)
-*/
-ATSINSmove(tmpret108, ATSPMVbool_true()) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret108) ;
-} /* end of [loop_51] */
-
-#if(0)
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4627))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110, PMVtmpltcst(g1int_lt<S2Evar(tk(4627))>)(arg0, tmp111)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52] */
-#endif // end of [TEMPLATE]
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$52$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4627)
-tmparg = S2Evar(tk(4627))
-tmpsub = Some(tk(4627) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__52__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp111__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret110__1, atspre_g1int_lt_int(arg0, tmp111__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret110__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__52__1] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__3, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__3, atspre_g0int_eq_int(arg0, tmp18__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__3] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$18$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4639)
-tmparg = S2Evar(tk(4639))
-tmpsub = Some(tk(4639) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__18__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret27__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp28__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret27__2, atspre_g1int_eq_int(arg0, tmp28__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret27__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__18__2] */
-
-/*
-/home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4624)
-tmparg = S2Evar(tk(4624))
-tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp18__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/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 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp18__4, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.11/lib/ats2-postiats-0.3.11/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret17__4, atspre_g0int_eq_int(arg0, tmp18__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret17__4) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__4] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 400(line=17, offs=24) -- 418(line=18, offs=13)
-*/
-/*
-local: is_prime_50$0(level=0)
-global: sqrt_int_48$0(level=0), is_prime_50$0(level=0), is_prime_ats$58$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_prime_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret127, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 387(line=17, offs=11) -- 419(line=18, offs=14)
-*/
-ATSINSflab(__patsflab_is_prime_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 408(line=18, offs=3) -- 418(line=18, offs=13)
-*/
-ATSINSmove(tmpret127, is_prime_50(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret127) ;
-} /* end of [is_prime_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 439(line=20, offs=19) -- 459(line=21, offs=12)
-*/
-/*
-local: exp_5$0(level=0)
-global: exp_5$0(level=0), exp_ats$59$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret128, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 431(line=20, offs=11) -- 459(line=21, offs=12)
-*/
-ATSINSflab(__patsflab_exp_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 450(line=21, offs=3) -- 459(line=21, offs=12)
-*/
-ATSINSmove(tmpret128, exp_5(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret128) ;
+** The C code is generated by [ATS/Postiats-0-3-13]
+**
+*/
+
+/*
+** 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)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1607(line=49, offs=1) -- 1646(line=50, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1669(line=54, offs=1) -- 1715(line=55, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1738(line=59, offs=1) -- 1783(line=60, offs=38)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 1865(line=66, offs=1) -- 1912(line=66, offs=48)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/filebas.dats: 15937(line=927, offs=1) -- 15974(line=928, offs=30)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/array.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/mydepies.hats: 208(line=18, offs=1) -- 248(line=19, offs=32)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1236(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-hx-libgmp/CATS/gmp.cats"
+//
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/math.cats"
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 204(line=9, offs=1) -- 372(line=15, offs=3)
+*/
+ATSextcode_beg()
+#ifndef LIBRARY_BUILD
+#define ATS_MEMALLOC_LIBC
+#include "ccomp/runtime/pats_ccomp_memalloc_libc.h"
+#include "ccomp/runtime/pats_ccomp_runtime_memalloc.c"
+#endif
+ATSextcode_end()
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_gt_int)
+ATSdyncst_mac(atspre_g1int_half_int)
+ATSdyncst_mac(atspre_g0int_mod_int)
+ATSdyncst_mac(atspre_g0int2int_int_int)
+ATSdyncst_mac(atspre_g0int_eq_int)
+ATSdyncst_mac(atspre_g0int_mul_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_cmp_int)
+ATSdyncst_mac(atspre_g0int_lt_int)
+ATSdyncst_mac(atspre_g1int_neg_int)
+ATSdyncst_mac(atspre_g0int_gt_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_clear)
+ATSdyncst_mac(atspre_ptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atspre_g0float2int_double_int)
+ATSdyncst_mac(atslib_libats_libc_sqrt_double)
+ATSdyncst_mac(atspre_g0int2float_int_double)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+ATSextern()
+atsvoid_t0ype
+the_atsexncon_initize
+(
+  atstype_exnconptr d2c, atstype_string exnmsg
+) ;
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+/*
+exnconlst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+/*
+assumelst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
+/*
+assumelst-declaration(end)
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_0(atstkind_t0ype(atstype_uint)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__1() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4(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__4__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10(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__10__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+big_exp_15(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16(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__16__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21(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_g0int_int__21__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25(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_g0int_int__25__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__2() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__3() ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__4() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_46(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_48(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_49(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__50(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__50__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__4(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]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 414(line=12, offs=4) -- 587(line=19, offs=6)
+*/
+/*
+local: 
+global: fib_gmp_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_0(atstkind_t0ype(atstype_uint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp4) ;
+// ATStmpdec_void(tmp5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 414(line=12, offs=4) -- 587(line=19, offs=6)
+*/
+ATSINSflab(__patsflab_fib_gmp_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 451(line=13, offs=3) -- 587(line=19, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 463(line=14, offs=9) -- 464(line=14, offs=10)
+*/
+/*
+ATSINStmpdec(tmpref1) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 467(line=14, offs=13) -- 478(line=14, offs=24)
+*/
+ATSINSmove(tmpref1, ATSLIB_056_prelude__ptr_alloc__1__1()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 492(line=15, offs=14) -- 513(line=15, offs=35)
+*/
+ATSINSmove_void(tmp4, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 527(line=16, offs=14) -- 555(line=16, offs=42)
+*/
+ATSINSmove_void(tmp5, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmpref1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 565(line=18, offs=5) -- 580(line=18, offs=20)
+*/
+ATSINSmove(tmpret0, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 451(line=13, offs=3) -- 587(line=19, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [fib_gmp_0] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2EVar(5559))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 764(line=24, offs=5) -- 1203(line=45, offs=10)
+*/
+/*
+local: exp_3$0(level=0)
+global: exp_3$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_3(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(tmpret6, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref12, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref13, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp14, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref20, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp21, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 764(line=24, offs=5) -- 1203(line=45, offs=10)
+*/
+ATSINSflab(__patsflab_exp_3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 814(line=25, offs=3) -- 1203(line=45, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 831(line=26, offs=7) -- 832(line=26, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 783(line=24, offs=24) -- 784(line=24, offs=25)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 832(line=26, offs=8) -- 832(line=26, offs=8)
+*/
+ATSINSlab(__atstmplab1):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 836(line=26, offs=12) -- 837(line=26, offs=13)
+*/
+ATSINSmove(tmpret6, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 845(line=27, offs=8) -- 845(line=27, offs=8)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 874(line=29, offs=12) -- 879(line=29, offs=17)
+*/
+ATSINSmove(tmp7, ATSLIB_056_prelude__gt_g1int_int__4__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 871(line=29, offs=9) -- 1193(line=44, offs=12)
+*/
+ATSif(
+tmp7
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 895(line=30, offs=11) -- 1168(line=42, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 915(line=31, offs=17) -- 917(line=31, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref12) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 920(line=31, offs=22) -- 926(line=31, offs=28)
+*/
+ATSINSmove(tmpref12, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 944(line=32, offs=17) -- 946(line=32, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref13) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 949(line=32, offs=22) -- 954(line=32, offs=27)
+*/
+ATSINSmove(tmpref13, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 983(line=34, offs=16) -- 989(line=34, offs=22)
+*/
+ATSINSmove(tmp14, ATSLIB_056_prelude__eq_g0int_int__10__1(tmpref13, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 980(line=34, offs=13) -- 1154(line=41, offs=18)
+*/
+ATSif(
+tmp14
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1013(line=35, offs=19) -- 1018(line=35, offs=24)
+*/
+ATSINSmove(tmp19, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1009(line=35, offs=15) -- 1023(line=35, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp19) ;
+ATSINSmove_tlcal(apy1, tmpref12) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_3) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1055(line=37, offs=15) -- 1154(line=41, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1079(line=38, offs=21) -- 1080(line=38, offs=22)
+*/
+/*
+ATSINStmpdec(tmpref20) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1091(line=38, offs=33) -- 1096(line=38, offs=38)
+*/
+ATSINSmove(tmp22, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1087(line=38, offs=29) -- 1101(line=38, offs=43)
+*/
+ATSINSmove(tmp21, exp_3(tmp22, tmpref12)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1083(line=38, offs=25) -- 1101(line=38, offs=43)
+*/
+ATSINSmove(tmpref20, atspre_g0int_mul_int(arg0, tmp21)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1135(line=40, offs=17) -- 1136(line=40, offs=18)
+*/
+ATSINSmove(tmpret6, tmpref20) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1055(line=37, offs=15) -- 1154(line=41, offs=18)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 895(line=30, offs=11) -- 1168(line=42, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1192(line=44, offs=11) -- 1193(line=44, offs=12)
+*/
+ATSINSmove(tmpret6, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret6) ;
+} /* end of [exp_3] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4637))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8, PMVtmpltcst(g1int_gt<S2Evar(tk(4637))>)(arg0, tmp9)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__1, atspre_g1int_gt_int(arg0, tmp9__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4628))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15, PMVtmpltcst(g0int_eq<S2Evar(tk(4628))>)(arg0, tmp16)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__1, atspre_g0int_eq_int(arg0, tmp16__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1241(line=48, offs=5) -- 1849(line=74, offs=39)
+*/
+/*
+local: big_exp_15$0(level=0)
+global: big_exp_15$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+big_exp_15(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret23, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp29, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp48, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref51, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref52, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp53, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref56, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref76, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref82, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref83, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp88) ;
+// ATStmpdec_void(tmp91) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1241(line=48, offs=5) -- 1849(line=74, offs=39)
+*/
+ATSINSflab(__patsflab_big_exp_15):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1304(line=49, offs=6) -- 1328(line=49, offs=30)
+*/
+ATSINSmove(tmp29, ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(ATSPMVrefarg0(arg0), ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1304(line=49, offs=6) -- 1332(line=49, offs=34)
+*/
+ATSINSmove(tmp24, ATSLIB_056_prelude__eq_g1int_int__16__1(tmp29, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1301(line=49, offs=3) -- 1849(line=74, offs=39)
+*/
+ATSif(
+tmp24
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1342(line=50, offs=5) -- 1343(line=50, offs=6)
+*/
+ATSINSmove(tmpret23, arg0) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1358(line=52, offs=8) -- 1363(line=52, offs=13)
+*/
+ATSINSmove(tmp48, ATSLIB_056_prelude__gt_g1int_int__4__2(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1355(line=52, offs=5) -- 1849(line=74, offs=39)
+*/
+ATSif(
+tmp48
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1375(line=53, offs=7) -- 1801(line=72, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1391(line=54, offs=13) -- 1393(line=54, offs=15)
+*/
+/*
+ATSINStmpdec(tmpref51) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1396(line=54, offs=18) -- 1402(line=54, offs=24)
+*/
+ATSINSmove(tmpref51, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1416(line=55, offs=13) -- 1418(line=55, offs=15)
+*/
+/*
+ATSINStmpdec(tmpref52) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1421(line=55, offs=18) -- 1426(line=55, offs=23)
+*/
+ATSINSmove(tmpref52, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1447(line=57, offs=12) -- 1453(line=57, offs=18)
+*/
+ATSINSmove(tmp53, ATSLIB_056_prelude__eq_g0int_int__10__2(tmpref52, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1444(line=57, offs=9) -- 1791(line=71, offs=14)
+*/
+ATSif(
+tmp53
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1469(line=58, offs=11) -- 1564(line=62, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1489(line=59, offs=17) -- 1490(line=59, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref56) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1493(line=59, offs=21) -- 1509(line=59, offs=37)
+*/
+ATSINSmove(tmpref56, ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1536(line=61, offs=13) -- 1550(line=61, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmpref56) ;
+ATSINSmove_tlcal(apy1, tmpref51) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_big_exp_15) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1469(line=58, offs=11) -- 1564(line=62, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1588(line=64, offs=11) -- 1791(line=71, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1608(line=65, offs=17) -- 1610(line=65, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref76) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1613(line=65, offs=22) -- 1629(line=65, offs=38)
+*/
+ATSINSmove(tmpref76, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1647(line=66, offs=17) -- 1649(line=66, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref82) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1652(line=66, offs=22) -- 1667(line=66, offs=37)
+*/
+ATSINSmove(tmpref82, big_exp_15(tmpref76, tmpref51)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1684(line=67, offs=17) -- 1685(line=67, offs=18)
+*/
+/*
+ATSINStmpdec(tmpref83) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1688(line=67, offs=21) -- 1714(line=67, offs=47)
+*/
+ATSINSmove(tmpref83, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(tmpref82, ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1736(line=68, offs=22) -- 1749(line=68, offs=35)
+*/
+ATSINSmove_void(tmp88, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1776(line=70, offs=13) -- 1777(line=70, offs=14)
+*/
+ATSINSmove(tmpret23, tmpref83) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1588(line=64, offs=11) -- 1791(line=71, offs=14)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1375(line=53, offs=7) -- 1801(line=72, offs=10)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1818(line=74, offs=8) -- 1831(line=74, offs=21)
+*/
+ATSINSmove_void(tmp91, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1835(line=74, offs=25) -- 1848(line=74, offs=38)
+*/
+ATSINSmove(tmpret23, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(ATSPMVi0nt(1))) ;
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret23) ;
+} /* end of [big_exp_15] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4643))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25, PMVtmpltcst(g1int_eq<S2Evar(tk(4643))>)(arg0, tmp26)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25__1, atspre_g1int_eq_int(arg0, tmp26__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$19$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret30, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp33, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
+*/
+ATSINSmove(tmp31, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
+*/
+ATSINSmove(tmp33, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp31, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
+*/
+ATSif(
+tmp33
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
+*/
+ATSINSmove(tmp32, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
+*/
+ATSINSmove(tmp34, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp31, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
+*/
+ATSif(
+tmp34
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
+*/
+ATSINSmove(tmp32, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
+*/
+ATSINSmove(tmp32, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
+*/
+ATSINSmove(tmpret30, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp32)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret30) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$19$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret30__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp31__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp33__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__1, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
+*/
+ATSINSmove(tmp31__1, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
+*/
+ATSINSmove(tmp33__1, ATSLIB_056_prelude__lt_g0int_int__21__1(tmp31__1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
+*/
+ATSif(
+tmp33__1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
+*/
+ATSINSmove(tmp32__1, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
+*/
+ATSINSmove(tmp34__1, ATSLIB_056_prelude__gt_g0int_int__25__1(tmp31__1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
+*/
+ATSif(
+tmp34__1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
+*/
+ATSINSmove(tmp32__1, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
+*/
+ATSINSmove(tmp32__1, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
+*/
+ATSINSmove(tmpret30__1, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp32__1)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret30__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__19__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
+*/
+/*
+local: 
+global: lt_g0int_int$21$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4624)
+tmparg = S2Evar(tk(4624))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret40, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
+*/
+ATSINSmove(tmp41, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4624))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
+*/
+ATSINSmove(tmpret40, PMVtmpltcst(g0int_lt<S2Evar(tk(4624))>)(arg0, tmp41)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret40) ;
+} /* end of [ATSLIB_056_prelude__lt_g0int_int__21] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 11941(line=617, offs=3) -- 11980(line=617, offs=42)
+*/
+/*
+local: 
+global: lt_g0int_int$21$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4624)
+tmparg = S2Evar(tk(4624))
+tmpsub = Some(tk(4624) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g0int_int__21__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret40__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11926(line=616, offs=1) -- 11980(line=617, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11967(line=617, offs=29) -- 11978(line=617, offs=40)
+*/
+ATSINSmove(tmp41__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 11950(line=617, offs=12) -- 11980(line=617, offs=42)
+*/
+ATSINSmove(tmpret40__1, atspre_g0int_lt_int(arg0, tmp41__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret40__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g0int_int__21__1] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
+*/
+/*
+local: 
+global: gt_g0int_int$25$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4626)
+tmparg = S2Evar(tk(4626))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret44, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
+*/
+ATSINSmove(tmp45, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4626))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
+*/
+ATSINSmove(tmpret44, PMVtmpltcst(g0int_gt<S2Evar(tk(4626))>)(arg0, tmp45)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret44) ;
+} /* end of [ATSLIB_056_prelude__gt_g0int_int__25] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12100(line=626, offs=3) -- 12139(line=626, offs=42)
+*/
+/*
+local: 
+global: gt_g0int_int$25$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4626)
+tmparg = S2Evar(tk(4626))
+tmpsub = Some(tk(4626) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g0int_int__25__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret44__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12085(line=625, offs=1) -- 12139(line=626, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g0int_int):
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12126(line=626, offs=29) -- 12137(line=626, offs=40)
+*/
+ATSINSmove(tmp45__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12109(line=626, offs=12) -- 12139(line=626, offs=42)
+*/
+ATSINSmove(tmpret44__1, atspre_g0int_gt_int(arg0, tmp45__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret44__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g0int_int__25__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$4$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4637)
+tmparg = S2Evar(tk(4637))
+tmpsub = Some(tk(4637) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__4__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp9__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp9__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret8__2, atspre_g1int_gt_int(arg0, tmp9__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret8__2) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__4__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__2, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__2, atspre_g0int_eq_int(arg0, tmp16__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
+*/
+/*
+local: 
+global: square_intinf0$30$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret57, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp58, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp59) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
+*/
+ATSINSmove(tmp58, PMVtmpltcst(square_intinf1<>)(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
+*/
+ATSINSmove_void(tmp59, PMVtmpltcst(intinf_free<>)(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
+*/
+ATSINSmove(tmpret57, tmp58) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret57) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
+*/
+/*
+local: 
+global: square_intinf0$30$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret57__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp58__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp59__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
+*/
+ATSINSmove(tmp58__1, ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
+*/
+ATSINSmove_void(tmp59__1, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
+*/
+ATSINSmove(tmpret57__1, tmp58__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret57__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__30__1] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65) ;
+// ATStmpdec_void(tmp66) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63, tmp64) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65__1) ;
+// ATStmpdec_void(tmp66__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64__1, ATSLIB_056_prelude__ptr_alloc__1__2()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65__1, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66__1, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63__1, tmp64__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$2(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__2] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72) ;
+// ATStmpdec_void(tmp73) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__1) ;
+// ATStmpdec_void(tmp73__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__1, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$32$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63__2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp64__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp65__2) ;
+// ATStmpdec_void(tmp66__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp64__2, ATSLIB_056_prelude__ptr_alloc__1__3()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp65__2, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp66__2, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp64__2, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret63__2, tmp64__2) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__32__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__3()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__3, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__3] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$39$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret84, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp85) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp85, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret84, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret84) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$39$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret84__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp85__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp85__1, 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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret84__1, arg0) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret84__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__39__1] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__2) ;
+// ATStmpdec_void(tmp73__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__2, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__2] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$35$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret72__3) ;
+// ATStmpdec_void(tmp73__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp73__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret72__3, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret72__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__35__3] */
+
+#if(0)
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$43$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp95, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp96) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp95, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp96, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp95, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret94, tmp95) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$43$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret94__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp95__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp96__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/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 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp95__1, ATSLIB_056_prelude__ptr_alloc__1__4()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp96__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp95__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret94__1, tmp95__1) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/.atspkg/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret94__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__43__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$1$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4740)
+tmparg = S2Evar(a(4740))
+tmpsub = Some(a(4740) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__1__4()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret2__4, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret2__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret2__4) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__1__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1895(line=77, offs=4) -- 2042(line=82, offs=6)
+*/
+/*
+local: 
+global: sqrt_int_46$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_46(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret101, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref102, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp103, atstkind_t0ype(atstype_double)) ;
+ATStmpdec(tmp104, atstkind_t0ype(atstype_double)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1895(line=77, offs=4) -- 2042(line=82, offs=6)
+*/
+ATSINSflab(__patsflab_sqrt_int_46):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1941(line=78, offs=3) -- 2042(line=82, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1953(line=79, offs=9) -- 1958(line=79, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref102) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1985(line=79, offs=41) -- 2009(line=79, offs=65)
+*/
+ATSINSmove(tmp104, atspre_g0int2float_int_double(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1973(line=79, offs=29) -- 2011(line=79, offs=67)
+*/
+ATSINSmove(tmp103, atslib_libats_libc_sqrt_double(tmp104)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1961(line=79, offs=17) -- 2012(line=79, offs=68)
+*/
+ATSINSmove(tmpref102, atspre_g0float2int_double_int(tmp103)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2022(line=81, offs=5) -- 2035(line=81, offs=18)
+*/
+ATSINSmove(tmpret101, ATSPMVcastfn(witness, atstkind_t0ype(atstype_int), tmpref102)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 1941(line=78, offs=3) -- 2042(line=82, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret101) ;
+} /* end of [sqrt_int_46] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2078(line=85, offs=4) -- 2659(line=108, offs=10)
+*/
+/*
+local: sqrt_int_46$0(level=0)
+global: sqrt_int_46$0(level=0), is_prime_48$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_48(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret105, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp124, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2078(line=85, offs=4) -- 2659(line=108, offs=10)
+*/
+ATSINSflab(__patsflab_is_prime_48):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2114(line=86, offs=3) -- 2659(line=108, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2131(line=87, offs=7) -- 2132(line=87, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2087(line=85, offs=13) -- 2088(line=85, offs=14)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2132(line=87, offs=8) -- 2132(line=87, offs=8)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2136(line=87, offs=12) -- 2141(line=87, offs=17)
+*/
+ATSINSmove(tmpret105, ATSPMVbool_false()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2149(line=88, offs=8) -- 2149(line=88, offs=8)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2174(line=90, offs=9) -- 2649(line=107, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2625(line=106, offs=19) -- 2635(line=106, offs=29)
+*/
+ATSINSmove(tmp124, sqrt_int_46(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2617(line=106, offs=11) -- 2637(line=106, offs=31)
+*/
+ATSINSmove(tmpret105, loop_49(arg0, ATSPMVi0nt(2), tmp124)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2174(line=90, offs=9) -- 2649(line=107, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret105) ;
+} /* end of [is_prime_48] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2192(line=91, offs=15) -- 2595(line=104, offs=21)
+*/
+/*
+local: loop_49$0(level=1)
+global: loop_49$0(level=1)
+local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_49(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(tmpret106, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp107, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp112, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp115, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp116, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp117, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp120, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp123, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2192(line=91, offs=15) -- 2595(line=104, offs=21)
+*/
+ATSINSflab(__patsflab_loop_49):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2282(line=92, offs=16) -- 2291(line=92, offs=25)
+*/
+ATSINSmove(tmp107, ATSLIB_056_prelude__lt_g1int_int__50__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2279(line=92, offs=13) -- 2595(line=104, offs=21)
+*/
+ATSif(
+tmp107
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2314(line=93, offs=18) -- 2319(line=93, offs=23)
+*/
+ATSINSmove(tmp115, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2314(line=93, offs=18) -- 2323(line=93, offs=27)
+*/
+ATSINSmove(tmp112, ATSLIB_056_prelude__eq_g0int_int__10__3(tmp115, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2311(line=93, offs=15) -- 2404(line=96, offs=35)
+*/
+ATSif(
+tmp112
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2345(line=94, offs=17) -- 2350(line=94, offs=22)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2391(line=96, offs=22) -- 2396(line=96, offs=27)
+*/
+ATSINSmove(tmp116, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2386(line=96, offs=17) -- 2404(line=96, offs=35)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp116) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_49) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2439(line=98, offs=18) -- 2448(line=98, offs=27)
+*/
+ATSINSmove(tmp117, ATSLIB_056_prelude__eq_g1int_int__16__2(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2436(line=98, offs=15) -- 2595(line=104, offs=21)
+*/
+ATSif(
+tmp117
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2473(line=99, offs=20) -- 2478(line=99, offs=25)
+*/
+ATSINSmove(tmp123, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2473(line=99, offs=20) -- 2482(line=99, offs=29)
+*/
+ATSINSmove(tmp120, ATSLIB_056_prelude__eq_g0int_int__10__4(tmp123, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2470(line=99, offs=17) -- 2555(line=102, offs=23)
+*/
+ATSif(
+tmp120
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2506(line=100, offs=19) -- 2511(line=100, offs=24)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2551(line=102, offs=19) -- 2555(line=102, offs=23)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_true()) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics-internal.dats: 2591(line=104, offs=17) -- 2595(line=104, offs=21)
+*/
+ATSINSmove(tmpret106, ATSPMVbool_true()) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret106) ;
+} /* end of [loop_49] */
+
+#if(0)
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4631))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108, PMVtmpltcst(g1int_lt<S2Evar(tk(4631))>)(arg0, tmp109)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$50$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4631)
+tmparg = S2Evar(tk(4631))
+tmpsub = Some(tk(4631) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__50__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret108__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp109__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp109__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret108__1, atspre_g1int_lt_int(arg0, tmp109__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret108__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__50__1] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__3, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__3, atspre_g0int_eq_int(arg0, tmp16__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__3] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$16$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4643)
+tmparg = S2Evar(tk(4643))
+tmpsub = Some(tk(4643) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__16__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret25__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp26__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp26__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret25__2, atspre_g1int_eq_int(arg0, tmp26__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret25__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__16__2] */
+
+/*
+/home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$10$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4628)
+tmparg = S2Evar(tk(4628))
+tmpsub = Some(tk(4628) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__10__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret15__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp16__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/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 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp16__4, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.13/lib/ats2-postiats-0.3.13/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret15__4, atspre_g0int_eq_int(arg0, tmp16__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret15__4) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__10__4] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 397(line=17, offs=24) -- 415(line=18, offs=13)
+*/
+/*
+local: is_prime_48$0(level=0)
+global: sqrt_int_46$0(level=0), is_prime_48$0(level=0), is_prime_ats$57$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_prime_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret125, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 384(line=17, offs=11) -- 416(line=18, offs=14)
+*/
+ATSINSflab(__patsflab_is_prime_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 405(line=18, offs=3) -- 415(line=18, offs=13)
+*/
+ATSINSmove(tmpret125, is_prime_48(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret125) ;
+} /* end of [is_prime_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 436(line=20, offs=19) -- 456(line=21, offs=12)
+*/
+/*
+local: exp_3$0(level=0)
+global: exp_3$0(level=0), exp_ats$58$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret126, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 428(line=20, offs=11) -- 456(line=21, offs=12)
+*/
+ATSINSflab(__patsflab_exp_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/numerics.dats: 447(line=21, offs=3) -- 456(line=21, offs=12)
+*/
+ATSINSmove(tmpret126, exp_3(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret126) ;
 } /* end of [exp_ats] */
 
 #if(0)
diff --git a/common/Numeric/Haskell.hs b/common/Numeric/Haskell.hs
new file mode 100644
--- /dev/null
+++ b/common/Numeric/Haskell.hs
@@ -0,0 +1,32 @@
+-- | This module contains functions that are common to the benchmark and test
+-- suites.
+module Numeric.Haskell ( hsPermutations
+                       , hsIsPrime
+                       , hsMaxRegions
+                       , hsDerangement
+                       ) where
+
+import qualified Math.Combinat.Numbers as Ext
+
+{-# SPECIALIZE hsPermutations :: Integer -> Integer -> Integer #-}
+hsPermutations :: Integral a => a -> a -> a
+hsPermutations n k = product [(n-k+1)..n]
+
+{-# SPECIALIZE hsIsPrime :: Int -> Bool #-}
+hsIsPrime :: (Integral a) => a -> Bool
+hsIsPrime 1 = False
+hsIsPrime x = all ((/=0) . (x `rem`)) [2..up]
+    where up = floor (sqrt (fromIntegral x :: Double))
+
+{-# SPECIALIZE hsMaxRegions :: Int -> Integer #-}
+hsMaxRegions :: (Integral a) => a -> Integer
+hsMaxRegions n = sum $ fmap (n `Ext.binomial`) [0..4]
+
+{-# SPECIALIZE hsDerangement :: Int -> Integer #-}
+hsDerangement :: (Integral a) => Int -> a
+hsDerangement n = derangements !! n
+
+derangements :: (Integral a) => [a]
+derangements = fmap snd g
+    where g = (0, 1) : (1, 0) : zipWith step g (tail g)
+          step (_, n) (i, m) = (i + 1, i * (n + m))
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,20 +1,24 @@
-cabal-version: 1.18
-name: fast-arithmetic
-version: 0.6.4.2
-license: BSD3
-license-file: LICENSE
-copyright: Copyright: (c) 2018 Vanessa McHale
-maintainer: vamchale@gmail.com
-author: Vanessa McHale
-tested-with: ghc ==7.0.4 ghc ==7.2.2 ghc ==7.4.2 ghc ==7.6.3
-             ghc ==7.8.4 ghc ==7.10.3 ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4
-             ghc ==8.6.2
-bug-reports: https://github.com/vmchale/hs-ats/issues
-synopsis: Fast functions on integers.
+cabal-version:      2.0
+name:               fast-arithmetic
+version:            0.6.4.3
+license:            BSD3
+license-file:       LICENSE
+copyright:          Copyright: (c) 2018-2019 Vanessa McHale
+maintainer:         vamchale@gmail.com
+author:             Vanessa McHale
+tested-with:
+    ghc ==7.10.3 ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4 ghc ==8.6.5
+    ghc ==8.8.1
+
+bug-reports:        https://github.com/vmchale/hs-ats/issues
+synopsis:           Fast functions on integers.
 description:
     Fast functions for number theory and combinatorics with a high level of safety guaranteed by [ATS](http://www.ats-lang.org/).
-category: Numerics, Math, Algorithms, Number Theory, Combinatorics, FFI, ATS
-build-type: Simple
+
+category:
+    Numerics, Math, Algorithms, Number Theory, Combinatorics, FFI, ATS
+
+build-type:         Simple
 extra-source-files:
     atspkg.dhall
     pkg.dhall
@@ -23,98 +27,114 @@
     bench.dhall
     ats-src/*.dats
     ats-src/*.sats
-    .atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/*.h
-    .atspkg/contrib/ats-includes-0.3.11/ccomp/runtime/*.c
-    .atspkg/contrib/ats-includes-0.3.11/prelude/CATS/*.cats
-    .atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/*.cats
-    .atspkg/contrib/ats-includes-0.3.11/libats/libc/CATS/sys/*.cats
+    .atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/*.h
+    .atspkg/contrib/ats-includes-0.3.13/ccomp/runtime/*.c
+    .atspkg/contrib/ats-includes-0.3.13/prelude/CATS/*.cats
+    .atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/*.cats
+    .atspkg/contrib/ats-includes-0.3.13/libats/libc/CATS/sys/*.cats
     .atspkg/contrib/atscntrb-hx-intinf/*.hats
     .atspkg/contrib/atscntrb-hx-libgmp/CATS/*.cats
-extra-doc-files: README.md
-                 CHANGELOG.md
 
+extra-doc-files:
+    README.md
+    CHANGELOG.md
+
 source-repository head
-    type: git
+    type:     git
     location: git@github.com:vmchale/hs-ats.git
 
 flag development
-    description:
-        Enable `-Werror`.
-    default: False
-    manual: True
+    description: Enable `-Werror`.
+    default:     False
+    manual:      True
 
 library
     exposed-modules:
         Numeric.NumberTheory
         Numeric.Combinatorics
+
     c-sources:
         cbits/number-theory.c
         cbits/numerics.c
         cbits/combinatorics.c
-    hs-source-dirs: src
-    other-modules:
-        Numeric.Common
+
+    hs-source-dirs:   src
+    other-modules:    Numeric.Common
     default-language: Haskell2010
-    include-dirs: .atspkg/contrib/ats-includes-0.3.11/ccomp/runtime
-                  .atspkg/contrib/ats-includes-0.3.11/ .atspkg/contrib
-    ghc-options: -Wall
+    include-dirs:
+        .atspkg/contrib/ats-includes-0.3.13/ccomp/runtime
+        .atspkg/contrib/ats-includes-0.3.13/ .atspkg/contrib
+
+    ghc-options:      -Wall
     build-depends:
-        base >=4.3 && <5,
+        base >=4.10 && <5,
         hgmp -any
 
-    if impl(ghc >=8.0)
-        cc-options: -mtune=native -flto -O3
-
     if os(windows)
         buildable: False
 
-    if os(windows)
-        buildable: False
+    if impl(ghc >=8.0)
+        ghc-options:
+            -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
 
+    if flag(development)
+        ghc-options: -Werror
+
+library pure-haskell
+    exposed-modules:  Numeric.Haskell
+    hs-source-dirs:   common
+    default-language: Haskell2010
+    ghc-options:      -Wall -O2
+    build-depends:
+        base >=4.3 && <5,
+        combinat -any
+
     if impl(ghc >=8.0)
-        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
-                     -Wcompat
+        ghc-options:
+            -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
 
     if flag(development)
         ghc-options: -Werror
 
 test-suite fast-arithmetic-test
-    type: exitcode-stdio-1.0
-    main-is: Spec.hs
-    hs-source-dirs: test
+    type:             exitcode-stdio-1.0
+    main-is:          Spec.hs
+    hs-source-dirs:   test
     default-language: Haskell2010
-    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
+    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall
     build-depends:
         base -any,
         fast-arithmetic -any,
         hspec -any,
         QuickCheck -any,
         arithmoi >=0.4.3.0,
-        combinat -any
+        combinat -any,
+        pure-haskell -any
 
     if flag(development)
         ghc-options: -Werror
 
     if impl(ghc >=8.0)
-        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
-                     -Wcompat
+        ghc-options:
+            -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
 
 benchmark fast-arithmetic-bench
-    type: exitcode-stdio-1.0
-    main-is: Bench.hs
-    hs-source-dirs: bench
+    type:             exitcode-stdio-1.0
+    main-is:          Bench.hs
+    hs-source-dirs:   bench
     default-language: Haskell2010
-    ghc-options: -Wall
+    ghc-options:      -Wall -O2
     build-depends:
         base -any,
         fast-arithmetic -any,
         criterion -any,
         arithmoi >=0.4.3.0,
-        combinat -any
+        combinat -any,
+        pure-haskell -any
 
     if flag(development)
         ghc-options: -Werror
 
     if impl(ghc >=8.0)
-        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
-                     -Wcompat
+        ghc-options:
+            -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
diff --git a/pkg.dhall b/pkg.dhall
--- a/pkg.dhall
+++ b/pkg.dhall
@@ -1,5 +1,5 @@
-let prelude = http://hackage.haskell.org/package/ats-pkg/src/dhall/atspkg-prelude.dhall
+let prelude = https://raw.githubusercontent.com/vmchale/atspkg/master/ats-pkg/dhall/atspkg-prelude.dhall
 
 in λ(x : List Natural) →
   prelude.makeHsPkg { x = x, name = "fast-arithmetic" }
-    ⫽ { libDeps = prelude.mapPlainDeps [ "atscntrb-hx-intinf" ], description = [ "Library for number theory & combinatorics in ATS" ] : Optional Text }
+    ⫽ { libDeps = prelude.mapPlainDeps [ "atscntrb-hx-intinf" ], description = Some "Library for number theory & combinatorics in ATS" }
diff --git a/src/Numeric/Combinatorics.hs b/src/Numeric/Combinatorics.hs
--- a/src/Numeric/Combinatorics.hs
+++ b/src/Numeric/Combinatorics.hs
@@ -21,7 +21,7 @@
 import           Numeric.GMP.Raw.Unsafe (mpz_clear)
 import           Numeric.GMP.Types
 import           Numeric.GMP.Utils
-import           System.IO.Unsafe       (unsafePerformIO)
+import           System.IO.Unsafe       (unsafeDupablePerformIO)
 
 foreign import ccall unsafe double_factorial_ats :: CInt -> IO (Ptr MPZ)
 foreign import ccall unsafe factorial_ats :: CInt -> IO (Ptr MPZ)
@@ -32,16 +32,13 @@
 foreign import ccall unsafe max_regions_ats :: CInt -> IO (Ptr MPZ)
 foreign import ccall unsafe stirling2_ats :: CInt -> CInt -> IO (Ptr MPZ)
 
--- TODO: use withForeignPtr instead?
--- foreign import ccall "&__gmpz_clear" mpz_clear :: FunPtr (Ptr GMPInt -> IO ())
-
 conjugateMPZ :: (CInt -> IO (Ptr MPZ)) -> Int -> Integer
-conjugateMPZ f n = unsafePerformIO $ do
+conjugateMPZ f n = unsafeDupablePerformIO $ do
     mPtr <- f (fromIntegral n)
     peekInteger mPtr <* mpz_clear mPtr
 
 conjugateMPZ' :: (CInt -> CInt -> IO (Ptr MPZ)) -> Int -> Int -> Integer
-conjugateMPZ' f n k = unsafePerformIO $ do
+conjugateMPZ' f n k = unsafeDupablePerformIO $ do
     mPtr <- f (fromIntegral n) (fromIntegral k)
     peekInteger mPtr <* mpz_clear mPtr
 
diff --git a/src/Numeric/Common.hs b/src/Numeric/Common.hs
--- a/src/Numeric/Common.hs
+++ b/src/Numeric/Common.hs
@@ -2,19 +2,13 @@
                       , asTest
                       ) where
 
-import           Data.Word
 import           Foreign.C
 
-asTest :: Integral a => (CInt -> CUChar) -> a -> Bool
+asTest :: Integral a => (CInt -> CBool) -> a -> Bool
 asTest f = convertBool . f . fromIntegral
 
 conjugate :: (Integral a, Integral b) => (CInt -> CInt) -> a -> b
 conjugate f = fromIntegral . f . fromIntegral
 
-convertBool :: CUChar -> Bool
-convertBool = go . fromIntegral
-    where
-        go :: Word8 -> Bool
-        go 0 = False
-        go 1 = True
-        go _ = error "converBool failed"
+convertBool :: CBool -> Bool
+convertBool = toEnum . fromEnum
diff --git a/src/Numeric/NumberTheory.hs b/src/Numeric/NumberTheory.hs
--- a/src/Numeric/NumberTheory.hs
+++ b/src/Numeric/NumberTheory.hs
@@ -21,11 +21,13 @@
 foreign import ccall unsafe count_divisors_ats :: CInt -> CInt
 foreign import ccall unsafe sum_divisors_ats :: CInt -> CInt
 foreign import ccall unsafe little_omega_ats :: CInt -> CInt
-foreign import ccall unsafe is_perfect_ats :: CInt -> CUChar
-foreign import ccall unsafe is_prime_ats :: CInt -> CUChar
+foreign import ccall unsafe is_perfect_ats :: CInt -> CBool
+foreign import ccall unsafe is_prime_ats :: CInt -> CBool
 foreign import ccall unsafe radical_ats :: CInt -> CInt
 
 -- | Radical of an integer
+--
+-- \( \text{rad}(n) = \displaystyle\prod_{p | n} p \)
 radical :: Int -> Int
 radical = conjugate radical_ats
 
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -4,27 +4,12 @@
 import qualified Math.Combinat.Numbers                 as Ext
 import qualified Math.NumberTheory.ArithmeticFunctions as Ext
 import           Numeric.Combinatorics
+import           Numeric.Haskell
 import           Numeric.NumberTheory
 import           Test.Hspec
 import           Test.Hspec.QuickCheck
 import           Test.QuickCheck                       hiding (choose)
 
-hsPermutations :: Integral a => a -> a -> a
-hsPermutations n k = product [(n-k+1)..n]
-
-hsIsPrime :: (Integral a) => a -> Bool
-hsIsPrime 1 = False
-hsIsPrime x = all ((/=0) . (x `rem`)) [2..up]
-    where up = floor (sqrt (fromIntegral x :: Float))
-
-hsDerangement :: (Integral a) => Int -> a
-hsDerangement n = derangements !! n
-
-derangements :: (Integral a) => [a]
-derangements = fmap snd g
-    where g = (0, 1) : (1, 0) : zipWith step g (tail g)
-          step (_, n) (i, m) = (i + 1, i * (n + m))
-
 agreeL :: (Eq a, Show b, Integral b, Arbitrary b) => b -> String -> (b -> a) -> (b -> a) -> SpecWith ()
 agreeL lower s f g = describe s $
     prop "should agree with the pure Haskell function" $
@@ -42,9 +27,9 @@
         [Ext.totient, Ext.tau, Ext.smallOmega, Ext.sigma 1]
 
     sequence_ $ zipWith3 (agreeL 0)
-        ["catalan", "doubleFactorial", "factorial"]
-        [catalan, doubleFactorial, factorial]
-        [Ext.catalan, Ext.doubleFactorial, Ext.factorial]
+        ["catalan", "doubleFactorial", "factorial", "maxRegions"]
+        [catalan, doubleFactorial, factorial, maxRegions]
+        [Ext.catalan, Ext.doubleFactorial, Ext.factorial, hsMaxRegions]
 
     sequence_ $ zipWith3 agree
         ["isPrime"]
@@ -66,7 +51,6 @@
     describe "permutations" $
         prop "should agree" $
             \n k -> k < 1 || k > n || permutations n k == hsPermutations (fromIntegral n) (fromIntegral k)
-
     describe "derangement" $
         prop "should be equal to [n!/e]" $
             \n -> n < 1 || n > 18 || (derangement n :: Integer) == floor ((fromIntegral (Ext.factorial (fromIntegral n :: Int) :: Integer) :: Double) / exp 1 + 0.5)
