diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 # fast-arithmetic
 
-[![Build Status](https://travis-ci.org/vmchale/fast-arithmetic.svg?branch=master)](https://travis-ci.org/vmchale/fast-arithmetic)
+[![Build Status](https://travis-ci.org/vmchale/hs-ats.svg?branch=master)](https://travis-ci.org/vmchale/hs-ats)
+[![Hackage](https://img.shields.io/hackage/v/fast-arithmetic.svg)](http://hackage.haskell.org/package/fast-arithmetic)
 
 This is a library for fast arithmetical functions using ATS, with a Haskell
 wrapper.
diff --git a/cbits/combinatorics.c b/cbits/combinatorics.c
--- a/cbits/combinatorics.c
+++ b/cbits/combinatorics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-10]
-** The starting compilation time is: 2018-4-22: 21h:35m
+** The starting compilation time is: 2018-4-28:  5h: 1m
 **
 */
 
@@ -4962,7 +4962,7 @@
 } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4333(line=156, offs=4) -- 4517(line=162, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4372(line=157, offs=4) -- 4556(line=163, offs=6)
 */
 /*
 local: 
@@ -4979,11 +4979,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4333(line=156, offs=4) -- 4517(line=162, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4372(line=157, offs=4) -- 4556(line=163, offs=6)
 */
 ATSINSflab(__patsflab_sterling_69):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4407(line=157, offs=3) -- 4517(line=162, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4446(line=158, offs=3) -- 4556(line=163, offs=6)
 */
 /*
 letpush(beg)
@@ -4993,12 +4993,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4498(line=161, offs=5) -- 4511(line=161, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4537(line=162, offs=5) -- 4550(line=162, offs=18)
 */
 ATSINSmove(tmpret161, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4407(line=157, offs=3) -- 4517(line=162, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4446(line=158, offs=3) -- 4556(line=163, offs=6)
 */
 /*
 INSletpop()
@@ -5008,7 +5008,7 @@
 } /* end of [sterling_69] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4419(line=158, offs=9) -- 4488(line=159, offs=10)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4458(line=159, offs=9) -- 4527(line=160, offs=10)
 */
 /*
 local: 
@@ -5025,11 +5025,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4419(line=158, offs=9) -- 4488(line=159, offs=10)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4458(line=159, offs=9) -- 4527(line=160, offs=10)
 */
 ATSINSflab(__patsflab_numerator_loop_70):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4485(line=159, offs=7) -- 4488(line=159, offs=10)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4524(line=160, offs=7) -- 4527(line=160, offs=10)
 */
 ATSINSmove(tmpret162, arg1) ;
 ATSfunbody_end()
@@ -5134,7 +5134,7 @@
 } /* end of [ATSLIB_056_prelude__ptr_alloc__17__17] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4714(line=167, offs=5) -- 4849(line=170, offs=39)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4753(line=168, offs=5) -- 4888(line=171, offs=39)
 */
 /*
 local: sum_loop_74$0(level=0)
@@ -5171,11 +5171,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4714(line=167, offs=5) -- 4849(line=170, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4753(line=168, offs=5) -- 4888(line=171, offs=39)
 */
 ATSINSflab(__patsflab_bell_73):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4775(line=168, offs=3) -- 4849(line=170, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4814(line=169, offs=3) -- 4888(line=171, offs=39)
 */
 ATScaseof_beg()
 /*
@@ -5183,15 +5183,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4792(line=169, offs=7) -- 4793(line=169, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4831(line=170, offs=7) -- 4832(line=170, offs=8)
 */
 ATSINSlab(__atstmplab35):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4727(line=167, offs=18) -- 4728(line=167, offs=19)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4766(line=168, offs=18) -- 4767(line=168, offs=19)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab37) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4793(line=169, offs=8) -- 4793(line=169, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4832(line=170, offs=8) -- 4832(line=170, offs=8)
 */
 ATSINSlab(__atstmplab36):
 /*
@@ -5201,7 +5201,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4797(line=169, offs=12) -- 4810(line=169, offs=25)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4836(line=170, offs=12) -- 4849(line=170, offs=25)
 */
 ATSINSmove(tmpret167, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(ATSPMVi0nt(1))) ;
 
@@ -5209,7 +5209,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4818(line=170, offs=8) -- 4818(line=170, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4857(line=171, offs=8) -- 4857(line=171, offs=8)
 */
 ATSINSlab(__atstmplab37):
 /*
@@ -5219,14 +5219,14 @@
 ibranch-guard:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4824(line=170, offs=14) -- 4830(line=170, offs=20)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4863(line=171, offs=14) -- 4869(line=171, offs=20)
 */
 ATSINSmove(tmp172, ATSLIB_056_prelude__gte_g1int_int__77__1(arg0, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4824(line=170, offs=14) -- 4830(line=170, offs=20)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4863(line=171, offs=14) -- 4869(line=171, offs=20)
 */
-ATSifnthen(ATSCKpat_bool(tmp172, ATSPMVbool_true())) { ATSINScaseof_fail("/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4817(line=170, offs=7) -- 4849(line=170, offs=39)") ; } ;
+ATSifnthen(ATSCKpat_bool(tmp172, ATSPMVbool_true())) { ATSINScaseof_fail("/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4856(line=171, offs=7) -- 4888(line=171, offs=39)") ; } ;
 /*
 emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
 */
@@ -5234,7 +5234,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4835(line=170, offs=25) -- 4849(line=170, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4874(line=171, offs=25) -- 4888(line=171, offs=39)
 */
 ATStailcal_beg()
 ATSINSmove_tlcal(a2py0, arg0) ;
@@ -5258,11 +5258,11 @@
 */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4854(line=171, offs=5) -- 5293(line=184, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4893(line=172, offs=5) -- 5332(line=185, offs=8)
 */
 ATSINSflab(__patsflab_sum_loop_74):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4968(line=172, offs=3) -- 5293(line=184, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5007(line=173, offs=3) -- 5332(line=185, offs=8)
 */
 ATScaseof_beg()
 /*
@@ -5270,15 +5270,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4985(line=173, offs=7) -- 4986(line=173, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5024(line=174, offs=7) -- 5025(line=174, offs=8)
 */
 ATSINSlab(__atstmplab38):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4920(line=171, offs=71) -- 4921(line=171, offs=72)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4959(line=172, offs=71) -- 4960(line=172, offs=72)
 */
 ATSifnthen(ATSCKpat_int(a2rg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab40) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4986(line=173, offs=8) -- 4986(line=173, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5025(line=174, offs=8) -- 5025(line=174, offs=8)
 */
 ATSINSlab(__atstmplab39):
 /*
@@ -5288,7 +5288,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 4990(line=173, offs=12) -- 5003(line=173, offs=25)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5029(line=174, offs=12) -- 5042(line=174, offs=25)
 */
 ATSINSmove(tmpret177, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(ATSPMVi0nt(1))) ;
 
@@ -5296,7 +5296,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5011(line=174, offs=8) -- 5011(line=174, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5050(line=175, offs=8) -- 5050(line=175, offs=8)
 */
 ATSINSlab(__atstmplab40):
 /*
@@ -5306,78 +5306,78 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5016(line=174, offs=13) -- 5293(line=184, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5055(line=175, offs=13) -- 5332(line=185, offs=8)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5030(line=175, offs=11) -- 5031(line=175, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5069(line=176, offs=11) -- 5070(line=176, offs=12)
 */
 /*
 ATSINStmpdec(tmpref182) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5046(line=175, offs=27) -- 5051(line=175, offs=32)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5085(line=176, offs=27) -- 5090(line=176, offs=32)
 */
 ATSINSmove(tmp183, atspre_g1int_sub_int(a2rg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5034(line=175, offs=15) -- 5052(line=175, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5073(line=176, offs=15) -- 5091(line=176, offs=33)
 */
 ATSINSmove(tmpref182, sum_loop_74(a2rg0, tmp183)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5063(line=176, offs=11) -- 5064(line=176, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5102(line=177, offs=11) -- 5103(line=177, offs=12)
 */
 /*
 ATSINStmpdec(tmpref184) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5067(line=176, offs=15) -- 5073(line=176, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5106(line=177, offs=15) -- 5112(line=177, offs=21)
 */
 ATSINSmove(tmpref184, bell_73(a2rg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5085(line=177, offs=11) -- 5086(line=177, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5124(line=178, offs=11) -- 5125(line=178, offs=12)
 */
 /*
 ATSINStmpdec(tmpref185) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5089(line=177, offs=15) -- 5101(line=177, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5128(line=178, offs=15) -- 5140(line=178, offs=27)
 */
 ATSINSmove(tmpref185, choose_55(a2rg0, a2rg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5112(line=178, offs=11) -- 5119(line=178, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5151(line=179, offs=11) -- 5158(line=179, offs=18)
 */
 /*
 ATSINStmpdec(tmpref186) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5122(line=178, offs=21) -- 5147(line=178, offs=46)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5161(line=179, offs=21) -- 5186(line=179, offs=46)
 */
 ATSINSmove(tmpref186, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__82__1(tmpref185, ATSPMVrefarg0(tmpref184))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5158(line=179, offs=11) -- 5161(line=179, offs=14)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5197(line=180, offs=11) -- 5200(line=180, offs=14)
 */
 /*
 ATSINStmpdec(tmpref191) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5164(line=179, offs=17) -- 5195(line=179, offs=48)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5203(line=180, offs=17) -- 5234(line=180, offs=48)
 */
 ATSINSmove(tmpref191, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(tmpref186, ATSPMVrefarg0(tmpref182))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5210(line=180, offs=15) -- 5223(line=180, offs=28)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5249(line=181, offs=15) -- 5262(line=181, offs=28)
 */
 ATSINSmove_void(tmp194, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(tmpref184)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5239(line=181, offs=15) -- 5252(line=181, offs=28)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5278(line=182, offs=15) -- 5291(line=182, offs=28)
 */
 ATSINSmove_void(tmp197, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(tmpref182)) ;
 
@@ -5386,11 +5386,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5267(line=183, offs=7) -- 5284(line=183, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5306(line=184, offs=7) -- 5323(line=184, offs=24)
 */
 ATSINSmove(tmpret177, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref191)) ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5016(line=174, offs=13) -- 5293(line=184, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/combinatorics-internal.dats: 5055(line=175, offs=13) -- 5332(line=185, offs=8)
 */
 /*
 INSletpop()
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-10]
-** The starting compilation time is: 2018-4-22: 21h:35m
+** The starting compilation time is: 2018-4-28:  5h: 1m
 **
 */
 
@@ -7176,7 +7176,7 @@
 } /* end of [ATSLIB_056_prelude__eq_g0int_int__13__9] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2918(line=104, offs=5) -- 3790(line=134, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2922(line=104, offs=5) -- 3794(line=134, offs=6)
 */
 /*
 local: exp_6$0(level=0), is_prime_52$0(level=0), div_gt_zero_99$0(level=0), exp_mod_prime_100$0(level=0)
@@ -7193,11 +7193,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2918(line=104, offs=5) -- 3790(line=134, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2922(line=104, offs=5) -- 3794(line=134, offs=6)
 */
 ATSINSflab(__patsflab_jacobi_106):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2959(line=105, offs=3) -- 3790(line=134, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2963(line=105, offs=3) -- 3794(line=134, offs=6)
 */
 /*
 letpush(beg)
@@ -7207,12 +7207,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3777(line=133, offs=5) -- 3784(line=133, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3781(line=133, offs=5) -- 3788(line=133, offs=12)
 */
 ATSINSmove(tmpret235, loop_111(arg0, arg1, ATSPMVi0nt(2))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2959(line=105, offs=3) -- 3790(line=134, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 2963(line=105, offs=3) -- 3794(line=134, offs=6)
 */
 /*
 INSletpop()
@@ -7222,7 +7222,7 @@
 } /* end of [jacobi_106] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3012(line=107, offs=9) -- 3339(line=117, offs=12)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3016(line=107, offs=9) -- 3343(line=117, offs=12)
 */
 /*
 local: exp_mod_prime_100$0(level=0)
@@ -7249,16 +7249,16 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3012(line=107, offs=9) -- 3339(line=117, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3016(line=107, offs=9) -- 3343(line=117, offs=12)
 */
 ATSINSflab(__patsflab_legendre_107):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3100(line=108, offs=13) -- 3105(line=108, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3104(line=108, offs=13) -- 3109(line=108, offs=18)
 */
 ATSINSmove(tmp237, atspre_g0int_mod_int(arg1, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3094(line=108, offs=7) -- 3339(line=117, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3098(line=108, offs=7) -- 3343(line=117, offs=12)
 */
 ATScaseof_beg()
 /*
@@ -7266,15 +7266,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3119(line=109, offs=11) -- 3120(line=109, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3123(line=109, offs=11) -- 3124(line=109, offs=12)
 */
 ATSINSlab(__atstmplab16):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3100(line=108, offs=13) -- 3105(line=108, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3104(line=108, offs=13) -- 3109(line=108, offs=18)
 */
 ATSifnthen(ATSCKpat_int(tmp237, ATSPMVint(0))) { ATSINSgoto(__atstmplab18) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3120(line=109, offs=12) -- 3120(line=109, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3124(line=109, offs=12) -- 3124(line=109, offs=12)
 */
 ATSINSlab(__atstmplab17):
 /*
@@ -7284,14 +7284,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3124(line=109, offs=16) -- 3125(line=109, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3128(line=109, offs=16) -- 3129(line=109, offs=17)
 */
 ATSINSmove(tmpret236, ATSPMVi0nt(0)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3137(line=110, offs=12) -- 3137(line=110, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3141(line=110, offs=12) -- 3141(line=110, offs=12)
 */
 ATSINSlab(__atstmplab18):
 /*
@@ -7301,29 +7301,29 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3141(line=110, offs=16) -- 3339(line=117, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3145(line=110, offs=16) -- 3343(line=117, offs=12)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3159(line=111, offs=15) -- 3160(line=111, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3163(line=111, offs=15) -- 3164(line=111, offs=16)
 */
 /*
 ATSINStmpdec(tmpref238) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3181(line=111, offs=37) -- 3186(line=111, offs=42)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3185(line=111, offs=37) -- 3190(line=111, offs=42)
 */
 ATSINSmove(tmp240, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3180(line=111, offs=36) -- 3191(line=111, offs=47)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3184(line=111, offs=36) -- 3195(line=111, offs=47)
 */
 ATSINSmove(tmp239, atspre_g1int_div_int(tmp240, ATSPMVi0nt(2))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3163(line=111, offs=19) -- 3195(line=111, offs=51)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3167(line=111, offs=19) -- 3199(line=111, offs=51)
 */
 ATSINSmove(tmpref238, exp_mod_prime_100(arg0, tmp239, arg1)) ;
 
@@ -7332,11 +7332,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3223(line=113, offs=17) -- 3224(line=113, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3227(line=113, offs=17) -- 3228(line=113, offs=18)
 */
 ATSINSmove(tmp241, tmpref238) ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3217(line=113, offs=11) -- 3327(line=116, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3221(line=113, offs=11) -- 3331(line=116, offs=21)
 */
 ATScaseof_beg()
 /*
@@ -7344,7 +7344,7 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3243(line=114, offs=16) -- 3243(line=114, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3247(line=114, offs=16) -- 3247(line=114, offs=16)
 */
 ATSINSlab(__atstmplab19):
 /*
@@ -7354,22 +7354,22 @@
 ibranch-guard:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3254(line=114, offs=27) -- 3259(line=114, offs=32)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3258(line=114, offs=27) -- 3263(line=114, offs=32)
 */
 ATSINSmove(tmp246, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3249(line=114, offs=22) -- 3260(line=114, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3253(line=114, offs=22) -- 3264(line=114, offs=33)
 */
 ATSINSmove(tmp245, atspre_g0int_mod_int(tmp241, tmp246)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3249(line=114, offs=22) -- 3264(line=114, offs=37)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3253(line=114, offs=22) -- 3268(line=114, offs=37)
 */
 ATSINSmove(tmp242, ATSLIB_056_prelude__eq_g0int_int__13__10(tmp245, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3249(line=114, offs=22) -- 3264(line=114, offs=37)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3253(line=114, offs=22) -- 3268(line=114, offs=37)
 */
 ATSifnthen(ATSCKpat_bool(tmp242, ATSPMVbool_true())) { ATSINSgoto(__atstmplab20) ; } ;
 /*
@@ -7379,7 +7379,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3268(line=114, offs=41) -- 3270(line=114, offs=43)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3272(line=114, offs=41) -- 3274(line=114, offs=43)
 */
 ATSINSmove(tmpret236, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
 
@@ -7387,7 +7387,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3286(line=115, offs=16) -- 3286(line=115, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3290(line=115, offs=16) -- 3290(line=115, offs=16)
 */
 ATSINSlab(__atstmplab20):
 /*
@@ -7397,17 +7397,17 @@
 ibranch-guard:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3292(line=115, offs=22) -- 3297(line=115, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3296(line=115, offs=22) -- 3301(line=115, offs=27)
 */
 ATSINSmove(tmp250, atspre_g0int_mod_int(tmp241, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3292(line=115, offs=22) -- 3301(line=115, offs=31)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3296(line=115, offs=22) -- 3305(line=115, offs=31)
 */
 ATSINSmove(tmp247, ATSLIB_056_prelude__eq_g0int_int__13__11(tmp250, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3292(line=115, offs=22) -- 3301(line=115, offs=31)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3296(line=115, offs=22) -- 3305(line=115, offs=31)
 */
 ATSifnthen(ATSCKpat_bool(tmp247, ATSPMVbool_true())) { ATSINSgoto(__atstmplab21) ; } ;
 /*
@@ -7417,14 +7417,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3305(line=115, offs=35) -- 3306(line=115, offs=36)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3309(line=115, offs=35) -- 3310(line=115, offs=36)
 */
 ATSINSmove(tmpret236, ATSPMVi0nt(0)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3322(line=116, offs=16) -- 3322(line=116, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3326(line=116, offs=16) -- 3326(line=116, offs=16)
 */
 ATSINSlab(__atstmplab21):
 /*
@@ -7434,7 +7434,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3326(line=116, offs=20) -- 3327(line=116, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3330(line=116, offs=20) -- 3331(line=116, offs=21)
 */
 ATSINSmove(tmpret236, ATSPMVi0nt(1)) ;
 ATSbranch_end()
@@ -7445,7 +7445,7 @@
 ATScaseof_end()
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3141(line=110, offs=16) -- 3339(line=117, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3145(line=110, offs=16) -- 3343(line=117, offs=12)
 */
 /*
 INSletpop()
@@ -7544,7 +7544,7 @@
 } /* end of [ATSLIB_056_prelude__eq_g0int_int__13__11] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3353(line=119, offs=9) -- 3508(line=122, offs=17)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3357(line=119, offs=9) -- 3512(line=122, offs=17)
 */
 /*
 local: div_gt_zero_99$0(level=0), get_multiplicity_110$0(level=1)
@@ -7564,16 +7564,16 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3353(line=119, offs=9) -- 3508(line=122, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3357(line=119, offs=9) -- 3512(line=122, offs=17)
 */
 ATSINSflab(__patsflab_get_multiplicity_110):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3425(line=120, offs=13) -- 3430(line=120, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3429(line=120, offs=13) -- 3434(line=120, offs=18)
 */
 ATSINSmove(tmp252, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3419(line=120, offs=7) -- 3508(line=122, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3423(line=120, offs=7) -- 3512(line=122, offs=17)
 */
 ATScaseof_beg()
 /*
@@ -7581,15 +7581,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3444(line=121, offs=11) -- 3445(line=121, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3448(line=121, offs=11) -- 3449(line=121, offs=12)
 */
 ATSINSlab(__atstmplab22):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3425(line=120, offs=13) -- 3430(line=120, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3429(line=120, offs=13) -- 3434(line=120, offs=18)
 */
 ATSifnthen(ATSCKpat_int(tmp252, ATSPMVint(0))) { ATSINSgoto(__atstmplab24) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3445(line=121, offs=12) -- 3445(line=121, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3449(line=121, offs=12) -- 3449(line=121, offs=12)
 */
 ATSINSlab(__atstmplab23):
 /*
@@ -7599,17 +7599,17 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3470(line=121, offs=37) -- 3487(line=121, offs=54)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3474(line=121, offs=37) -- 3491(line=121, offs=54)
 */
 ATSINSmove(tmp254, div_gt_zero_99(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3453(line=121, offs=20) -- 3491(line=121, offs=58)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3457(line=121, offs=20) -- 3495(line=121, offs=58)
 */
 ATSINSmove(tmp253, get_multiplicity_110(tmp254, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3449(line=121, offs=16) -- 3491(line=121, offs=58)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3453(line=121, offs=16) -- 3495(line=121, offs=58)
 */
 ATSINSmove(tmpret251, atspre_g1int_add_int(ATSPMVi0nt(1), tmp253)) ;
 
@@ -7617,7 +7617,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3503(line=122, offs=12) -- 3503(line=122, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3507(line=122, offs=12) -- 3507(line=122, offs=12)
 */
 ATSINSlab(__atstmplab24):
 /*
@@ -7627,7 +7627,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3507(line=122, offs=16) -- 3508(line=122, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3511(line=122, offs=16) -- 3512(line=122, offs=17)
 */
 ATSINSmove(tmpret251, ATSPMVi0nt(0)) ;
 ATSbranch_end()
@@ -7642,7 +7642,7 @@
 } /* end of [get_multiplicity_110] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3522(line=124, offs=9) -- 3767(line=131, offs=24)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3526(line=124, offs=9) -- 3771(line=131, offs=24)
 */
 /*
 local: exp_6$0(level=0), is_prime_52$0(level=0), legendre_107$0(level=1), get_multiplicity_110$0(level=1), loop_111$0(level=1)
@@ -7670,96 +7670,96 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3522(line=124, offs=9) -- 3767(line=131, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3526(line=124, offs=9) -- 3771(line=131, offs=24)
 */
 ATSINSflab(__patsflab_loop_111):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3578(line=125, offs=10) -- 3585(line=125, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3582(line=125, offs=10) -- 3589(line=125, offs=17)
 */
 ATSINSmove(tmp256, ATSLIB_056_prelude__gt_g1int_int__7__5(arg0, env1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3575(line=125, offs=7) -- 3767(line=131, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3579(line=125, offs=7) -- 3771(line=131, offs=24)
 */
 ATSif(
 tmp256
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3599(line=126, offs=9) -- 3600(line=126, offs=10)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3603(line=126, offs=9) -- 3604(line=126, offs=10)
 */
 ATSINSmove(tmpret255, ATSPMVi0nt(1)) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3623(line=128, offs=12) -- 3650(line=128, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3627(line=128, offs=12) -- 3654(line=128, offs=39)
 */
 ATSINSmove(tmp263, atspre_g0int_mod_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3623(line=128, offs=12) -- 3650(line=128, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3627(line=128, offs=12) -- 3654(line=128, offs=39)
 */
 ATSINSmove(tmp260, ATSLIB_056_prelude__eq_g0int_int__13__12(tmp263, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3623(line=128, offs=12) -- 3650(line=128, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3627(line=128, offs=12) -- 3654(line=128, offs=39)
 */
 ATSif(
 tmp260
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3623(line=128, offs=12) -- 3650(line=128, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3627(line=128, offs=12) -- 3654(line=128, offs=39)
 */
 ATSINSmove(tmp259, is_prime_52(arg0)) ;
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3623(line=128, offs=12) -- 3650(line=128, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3627(line=128, offs=12) -- 3654(line=128, offs=39)
 */
 ATSINSmove(tmp259, ATSPMVbool_false()) ;
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3620(line=128, offs=9) -- 3767(line=131, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3624(line=128, offs=9) -- 3771(line=131, offs=24)
 */
 ATSif(
 tmp259
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3672(line=129, offs=16) -- 3679(line=129, offs=23)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3676(line=129, offs=16) -- 3683(line=129, offs=23)
 */
 ATSINSmove(tmp265, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3667(line=129, offs=11) -- 3680(line=129, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3671(line=129, offs=11) -- 3684(line=129, offs=24)
 */
 ATSINSmove(tmp264, loop_111(env0, env1, tmp265)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3687(line=129, offs=31) -- 3703(line=129, offs=47)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3691(line=129, offs=31) -- 3707(line=129, offs=47)
 */
 ATSINSmove(tmp267, legendre_107(arg0, env1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3705(line=129, offs=49) -- 3729(line=129, offs=73)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3709(line=129, offs=49) -- 3733(line=129, offs=73)
 */
 ATSINSmove(tmp268, get_multiplicity_110(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3683(line=129, offs=27) -- 3730(line=129, offs=74)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3687(line=129, offs=27) -- 3734(line=129, offs=74)
 */
 ATSINSmove(tmp266, exp_6(tmp267, tmp268)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3667(line=129, offs=11) -- 3730(line=129, offs=74)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3671(line=129, offs=11) -- 3734(line=129, offs=74)
 */
 ATSINSmove(tmpret255, atspre_g0int_mul_int(tmp264, tmp266)) ;
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3759(line=131, offs=16) -- 3766(line=131, offs=23)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3763(line=131, offs=16) -- 3770(line=131, offs=23)
 */
 ATSINSmove(tmp269, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3754(line=131, offs=11) -- 3767(line=131, offs=24)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3758(line=131, offs=11) -- 3771(line=131, offs=24)
 */
 ATStailcal_beg()
 ATSINSmove_tlcal(apy0, tmp269) ;
@@ -7856,7 +7856,7 @@
 } /* end of [ATSLIB_056_prelude__eq_g0int_int__13__12] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3795(line=136, offs=4) -- 3864(line=137, offs=32)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3799(line=136, offs=4) -- 3868(line=137, offs=32)
 */
 /*
 local: divisors_68$0(level=0)
@@ -7874,16 +7874,16 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3795(line=136, offs=4) -- 3864(line=137, offs=32)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3799(line=136, offs=4) -- 3868(line=137, offs=32)
 */
 ATSINSflab(__patsflab_count_divisors_114):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3852(line=137, offs=20) -- 3862(line=137, offs=30)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3856(line=137, offs=20) -- 3866(line=137, offs=30)
 */
 ATSINSmove(tmp282, divisors_68(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3835(line=137, offs=3) -- 3864(line=137, offs=32)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3839(line=137, offs=3) -- 3868(line=137, offs=32)
 */
 ATSINSmove(tmpret270, ATSLIB_056_prelude__stream_vt_length__115__1(tmp282)) ;
 
@@ -8234,7 +8234,7 @@
 } /* end of [loop_116__116__1] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3944(line=142, offs=4) -- 4543(line=168, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3948(line=142, offs=4) -- 4547(line=168, offs=6)
 */
 /*
 local: sqrt_int_49$0(level=0)
@@ -8251,11 +8251,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3944(line=142, offs=4) -- 4543(line=168, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3948(line=142, offs=4) -- 4547(line=168, offs=6)
 */
 ATSINSflab(__patsflab_sum_divisors_119):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3982(line=143, offs=3) -- 4543(line=168, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3986(line=143, offs=3) -- 4547(line=168, offs=6)
 */
 /*
 letpush(beg)
@@ -8265,12 +8265,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4527(line=167, offs=5) -- 4537(line=167, offs=15)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4531(line=167, offs=5) -- 4541(line=167, offs=15)
 */
 ATSINSmove(tmpret283, loop_120(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3982(line=143, offs=3) -- 4543(line=168, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3986(line=143, offs=3) -- 4547(line=168, offs=6)
 */
 /*
 INSletpop()
@@ -8280,7 +8280,7 @@
 } /* end of [sum_divisors_119] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3994(line=144, offs=9) -- 4517(line=165, offs=27)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3998(line=144, offs=9) -- 4521(line=165, offs=27)
 */
 /*
 local: sqrt_int_49$0(level=0), loop_120$0(level=1)
@@ -8313,71 +8313,71 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3994(line=144, offs=9) -- 4517(line=165, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 3998(line=144, offs=9) -- 4521(line=165, offs=27)
 */
 ATSINSflab(__patsflab_loop_120):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4088(line=145, offs=17) -- 4098(line=145, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4092(line=145, offs=17) -- 4102(line=145, offs=27)
 */
 ATSINSmove(tmp288, sqrt_int_49(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4081(line=145, offs=10) -- 4098(line=145, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4085(line=145, offs=10) -- 4102(line=145, offs=27)
 */
 ATSINSmove(tmp285, ATSLIB_056_prelude__gte_g1int_int__72__2(arg1, tmp288)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4078(line=145, offs=7) -- 4517(line=165, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4082(line=145, offs=7) -- 4521(line=165, offs=27)
 */
 ATSif(
 tmp285
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4116(line=146, offs=12) -- 4123(line=146, offs=19)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4120(line=146, offs=12) -- 4127(line=146, offs=19)
 */
 ATSINSmove(tmp292, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4116(line=146, offs=12) -- 4127(line=146, offs=23)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4120(line=146, offs=12) -- 4131(line=146, offs=23)
 */
 ATSINSmove(tmp289, ATSLIB_056_prelude__eq_g0int_int__13__13(tmp292, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4113(line=146, offs=9) -- 4325(line=156, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4117(line=146, offs=9) -- 4329(line=156, offs=12)
 */
 ATSif(
 tmp289
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4146(line=147, offs=14) -- 4153(line=147, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4150(line=147, offs=14) -- 4157(line=147, offs=21)
 */
 ATSINSmove(tmp296, atspre_g1int_div_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4146(line=147, offs=14) -- 4160(line=147, offs=28)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4150(line=147, offs=14) -- 4164(line=147, offs=28)
 */
 ATSINSmove(tmp293, ATSLIB_056_prelude__neq_g1int_int__76__2(tmp296, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4143(line=147, offs=11) -- 4300(line=154, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4147(line=147, offs=11) -- 4304(line=154, offs=16)
 */
 ATSif(
 tmp293
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4178(line=148, offs=13) -- 4269(line=152, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4182(line=148, offs=13) -- 4273(line=152, offs=16)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4200(line=149, offs=19) -- 4201(line=149, offs=20)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4204(line=149, offs=19) -- 4205(line=149, offs=20)
 */
 /*
 ATSINStmpdec(tmpref297) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4209(line=149, offs=28) -- 4216(line=149, offs=35)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4213(line=149, offs=28) -- 4220(line=149, offs=35)
 */
 ATSINSmove(tmpref297, atspre_g1int_div_int(arg0, arg1)) ;
 
@@ -8386,59 +8386,59 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4246(line=151, offs=15) -- 4253(line=151, offs=22)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4250(line=151, offs=15) -- 4257(line=151, offs=22)
 */
 ATSINSmove(tmpret284, atspre_g1int_add_int(arg1, tmpref297)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4178(line=148, offs=13) -- 4269(line=152, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4182(line=148, offs=13) -- 4273(line=152, offs=16)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4297(line=154, offs=13) -- 4300(line=154, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4301(line=154, offs=13) -- 4304(line=154, offs=16)
 */
 ATSINSmove(tmpret284, arg1) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4324(line=156, offs=11) -- 4325(line=156, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4328(line=156, offs=11) -- 4329(line=156, offs=12)
 */
 ATSINSmove(tmpret284, ATSPMVi0nt(0)) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4348(line=158, offs=12) -- 4355(line=158, offs=19)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4352(line=158, offs=12) -- 4359(line=158, offs=19)
 */
 ATSINSmove(tmp301, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4348(line=158, offs=12) -- 4359(line=158, offs=23)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4352(line=158, offs=12) -- 4363(line=158, offs=23)
 */
 ATSINSmove(tmp298, ATSLIB_056_prelude__eq_g0int_int__13__14(tmp301, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4345(line=158, offs=9) -- 4517(line=165, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4349(line=158, offs=9) -- 4521(line=165, offs=27)
 */
 ATSif(
 tmp298
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4375(line=159, offs=11) -- 4477(line=163, offs=14)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4379(line=159, offs=11) -- 4481(line=163, offs=14)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4395(line=160, offs=17) -- 4396(line=160, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4399(line=160, offs=17) -- 4400(line=160, offs=18)
 */
 /*
 ATSINStmpdec(tmpref302) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4404(line=160, offs=26) -- 4411(line=160, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4408(line=160, offs=26) -- 4415(line=160, offs=33)
 */
 ATSINSmove(tmpref302, atspre_g1int_div_int(arg0, arg1)) ;
 
@@ -8447,39 +8447,39 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4437(line=162, offs=13) -- 4444(line=162, offs=20)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4441(line=162, offs=13) -- 4448(line=162, offs=20)
 */
 ATSINSmove(tmp303, atspre_g1int_add_int(arg1, tmpref302)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4455(line=162, offs=31) -- 4462(line=162, offs=38)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4459(line=162, offs=31) -- 4466(line=162, offs=38)
 */
 ATSINSmove(tmp305, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4447(line=162, offs=23) -- 4463(line=162, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4451(line=162, offs=23) -- 4467(line=162, offs=39)
 */
 ATSINSmove(tmp304, loop_120(arg0, tmp305)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4437(line=162, offs=13) -- 4463(line=162, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4441(line=162, offs=13) -- 4467(line=162, offs=39)
 */
 ATSINSmove(tmpret284, atspre_g0int_add_int(tmp303, tmp304)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4375(line=159, offs=11) -- 4477(line=163, offs=14)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4379(line=159, offs=11) -- 4481(line=163, offs=14)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4509(line=165, offs=19) -- 4516(line=165, offs=26)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4513(line=165, offs=19) -- 4520(line=165, offs=26)
 */
 ATSINSmove(tmp306, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4501(line=165, offs=11) -- 4517(line=165, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4505(line=165, offs=11) -- 4521(line=165, offs=27)
 */
 ATStailcal_beg()
 ATSINSmove_tlcal(apy0, arg0) ;
@@ -8660,7 +8660,7 @@
 } /* end of [ATSLIB_056_prelude__eq_g0int_int__13__14] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4548(line=170, offs=4) -- 4603(line=171, offs=22)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4552(line=170, offs=4) -- 4607(line=171, offs=22)
 */
 /*
 local: sum_divisors_119$0(level=0)
@@ -8678,16 +8678,16 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4548(line=170, offs=4) -- 4603(line=171, offs=22)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4552(line=170, offs=4) -- 4607(line=171, offs=22)
 */
 ATSINSflab(__patsflab_is_perfect_126):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4584(line=171, offs=3) -- 4598(line=171, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4588(line=171, offs=3) -- 4602(line=171, offs=17)
 */
 ATSINSmove(tmp310, sum_divisors_119(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4584(line=171, offs=3) -- 4603(line=171, offs=22)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4588(line=171, offs=3) -- 4607(line=171, offs=22)
 */
 ATSINSmove(tmpret307, ATSLIB_056_prelude__eq_g0int_int__13__15(tmp310, arg0)) ;
 
@@ -8737,7 +8737,7 @@
 } /* end of [ATSLIB_056_prelude__eq_g0int_int__13__15] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4609(line=173, offs=5) -- 4929(line=187, offs=8)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4613(line=173, offs=5) -- 4933(line=187, offs=8)
 */
 /*
 local: rip_128$0(level=0)
@@ -8761,60 +8761,60 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4609(line=173, offs=5) -- 4929(line=187, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4613(line=173, offs=5) -- 4933(line=187, offs=8)
 */
 ATSINSflab(__patsflab_rip_128):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4731(line=174, offs=6) -- 4736(line=174, offs=11)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4735(line=174, offs=6) -- 4740(line=174, offs=11)
 */
 ATSINSmove(tmp317, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4731(line=174, offs=6) -- 4741(line=174, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4735(line=174, offs=6) -- 4745(line=174, offs=16)
 */
 ATSINSmove(tmp312, ATSLIB_056_prelude__neq_g0int_int__129__1(tmp317, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4728(line=174, offs=3) -- 4929(line=187, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4732(line=174, offs=3) -- 4933(line=187, offs=8)
 */
 ATSif(
 tmp312
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4751(line=175, offs=5) -- 4752(line=175, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4755(line=175, offs=5) -- 4756(line=175, offs=6)
 */
 ATSINSmove(tmpret311, arg0) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4767(line=177, offs=8) -- 4772(line=177, offs=13)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4771(line=177, offs=8) -- 4776(line=177, offs=13)
 */
 ATSINSmove(tmp321, atspre_g1int_div_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4767(line=177, offs=8) -- 4776(line=177, offs=17)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4771(line=177, offs=8) -- 4780(line=177, offs=17)
 */
 ATSINSmove(tmp318, ATSLIB_056_prelude__gt_g1int_int__7__6(tmp321, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4764(line=177, offs=5) -- 4929(line=187, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4768(line=177, offs=5) -- 4933(line=187, offs=8)
 */
 ATSif(
 tmp318
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4788(line=178, offs=7) -- 4912(line=185, offs=10)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4792(line=178, offs=7) -- 4916(line=185, offs=10)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4804(line=179, offs=13) -- 4806(line=179, offs=15)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4808(line=179, offs=13) -- 4810(line=179, offs=15)
 */
 /*
 ATSINStmpdec(tmpref322) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4809(line=179, offs=18) -- 4814(line=179, offs=23)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4813(line=179, offs=18) -- 4818(line=179, offs=23)
 */
 ATSINSmove(tmpref322, atspre_g1int_div_int(arg0, arg1)) ;
 
@@ -8823,40 +8823,40 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4835(line=181, offs=12) -- 4841(line=181, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4839(line=181, offs=12) -- 4845(line=181, offs=18)
 */
 ATSINSmove(tmp323, ATSLIB_056_prelude__lt_g1int_int__54__2(tmpref322, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4832(line=181, offs=9) -- 4902(line=184, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4836(line=181, offs=9) -- 4906(line=184, offs=12)
 */
 ATSif(
 tmp323
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4866(line=182, offs=20) -- 4876(line=182, offs=30)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4870(line=182, offs=20) -- 4880(line=182, offs=30)
 */
 ATSINSmove(tmp326, rip_128(tmpref322, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4857(line=182, offs=11) -- 4877(line=182, offs=31)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4861(line=182, offs=11) -- 4881(line=182, offs=31)
 */
 ATSINSmove(tmpret311, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp326)) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4901(line=184, offs=11) -- 4902(line=184, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4905(line=184, offs=11) -- 4906(line=184, offs=12)
 */
 ATSINSmove(tmpret311, ATSPMVi0nt(1)) ;
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4788(line=178, offs=7) -- 4912(line=185, offs=10)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4792(line=178, offs=7) -- 4916(line=185, offs=10)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4928(line=187, offs=7) -- 4929(line=187, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4932(line=187, offs=7) -- 4933(line=187, offs=8)
 */
 ATSINSmove(tmpret311, ATSPMVi0nt(1)) ;
 } /* ATSendif */
@@ -9032,7 +9032,7 @@
 } /* end of [ATSLIB_056_prelude__lt_g1int_int__54__2] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4935(line=189, offs=5) -- 5538(line=207, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4939(line=189, offs=5) -- 5542(line=207, offs=6)
 */
 /*
 local: is_prime_52$0(level=0), rip_128$0(level=0)
@@ -9049,11 +9049,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4935(line=189, offs=5) -- 5538(line=207, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4939(line=189, offs=5) -- 5542(line=207, offs=6)
 */
 ATSINSflab(__patsflab_prime_factors_134):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4985(line=190, offs=3) -- 5538(line=207, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4989(line=190, offs=3) -- 5542(line=207, offs=6)
 */
 /*
 letpush(beg)
@@ -9063,12 +9063,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5522(line=206, offs=5) -- 5532(line=206, offs=15)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5526(line=206, offs=5) -- 5536(line=206, offs=15)
 */
 ATSINSmove(tmpret327, loop_135(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4985(line=190, offs=3) -- 5538(line=207, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4989(line=190, offs=3) -- 5542(line=207, offs=6)
 */
 /*
 INSletpop()
@@ -9078,7 +9078,7 @@
 } /* end of [prime_factors_134] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4997(line=191, offs=9) -- 5512(line=204, offs=27)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5001(line=191, offs=9) -- 5516(line=204, offs=27)
 */
 /*
 local: is_prime_52$0(level=0), rip_128$0(level=0), loop_135$0(level=1)
@@ -9105,109 +9105,109 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 4997(line=191, offs=9) -- 5512(line=204, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5001(line=191, offs=9) -- 5516(line=204, offs=27)
 */
 ATSINSflab(__patsflab_loop_135):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5095(line=192, offs=10) -- 5103(line=192, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5099(line=192, offs=10) -- 5107(line=192, offs=18)
 */
 ATSINSmove(tmp329, ATSLIB_056_prelude__gte_g1int_int__72__3(arg1, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5092(line=192, offs=7) -- 5512(line=204, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5096(line=192, offs=7) -- 5516(line=204, offs=27)
 */
 ATSif(
 tmp329
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5120(line=193, offs=12) -- 5130(line=193, offs=22)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5124(line=193, offs=12) -- 5134(line=193, offs=22)
 */
 ATSINSmove(tmp332, is_prime_52(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5117(line=193, offs=9) -- 5243(line=196, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5121(line=193, offs=9) -- 5247(line=196, offs=33)
 */
 ATSif(
 tmp332
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5147(line=194, offs=11) -- 5197(line=194, offs=61)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5151(line=194, offs=11) -- 5201(line=194, offs=61)
 */
 ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_137, (arg0))) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5221(line=196, offs=11) -- 5243(line=196, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5225(line=196, offs=11) -- 5247(line=196, offs=33)
 */
 ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_139, ())) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5266(line=198, offs=12) -- 5293(line=198, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5270(line=198, offs=12) -- 5297(line=198, offs=39)
 */
 ATSINSmove(tmp341, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5266(line=198, offs=12) -- 5293(line=198, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5270(line=198, offs=12) -- 5297(line=198, offs=39)
 */
 ATSINSmove(tmp338, ATSLIB_056_prelude__eq_g0int_int__13__16(tmp341, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5266(line=198, offs=12) -- 5293(line=198, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5270(line=198, offs=12) -- 5297(line=198, offs=39)
 */
 ATSif(
 tmp338
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5266(line=198, offs=12) -- 5293(line=198, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5270(line=198, offs=12) -- 5297(line=198, offs=39)
 */
 ATSINSmove(tmp337, is_prime_52(arg1)) ;
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5266(line=198, offs=12) -- 5293(line=198, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5270(line=198, offs=12) -- 5297(line=198, offs=39)
 */
 ATSINSmove(tmp337, ATSPMVbool_false()) ;
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5263(line=198, offs=9) -- 5512(line=204, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5267(line=198, offs=9) -- 5516(line=204, offs=27)
 */
 ATSif(
 tmp337
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5313(line=199, offs=14) -- 5320(line=199, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5317(line=199, offs=14) -- 5324(line=199, offs=21)
 */
 ATSINSmove(tmp345, atspre_g1int_div_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5313(line=199, offs=14) -- 5324(line=199, offs=25)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5317(line=199, offs=14) -- 5328(line=199, offs=25)
 */
 ATSINSmove(tmp342, ATSLIB_056_prelude__gt_g1int_int__7__7(tmp345, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5310(line=199, offs=11) -- 5472(line=202, offs=65)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5314(line=199, offs=11) -- 5476(line=202, offs=65)
 */
 ATSif(
 tmp342
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5342(line=200, offs=13) -- 5392(line=200, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5346(line=200, offs=13) -- 5396(line=200, offs=63)
 */
 ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_142, (arg0, arg1))) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5420(line=202, offs=13) -- 5472(line=202, offs=65)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5424(line=202, offs=13) -- 5476(line=202, offs=65)
 */
 ATSINSmove_ldelay(tmpret328, atstype_boxed, ATSPMVcfunlab(1, __patsfun_143, (arg1))) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5504(line=204, offs=19) -- 5511(line=204, offs=26)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5508(line=204, offs=19) -- 5515(line=204, offs=26)
 */
 ATSINSmove(tmp352, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5496(line=204, offs=11) -- 5512(line=204, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5500(line=204, offs=11) -- 5516(line=204, offs=27)
 */
 ATStailcal_beg()
 ATSINSmove_tlcal(apy0, arg0) ;
@@ -9265,7 +9265,7 @@
 } /* end of [ATSLIB_056_prelude__gte_g1int_int__72__3] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5147(line=194, offs=11) -- 5197(line=194, offs=61)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5151(line=194, offs=11) -- 5201(line=194, offs=61)
 */
 /*
 local: 
@@ -9283,21 +9283,21 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5147(line=194, offs=11) -- 5197(line=194, offs=61)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5151(line=194, offs=11) -- 5201(line=194, offs=61)
 */
 ATSINSflab(__patsflab___patsfun_137):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5147(line=194, offs=11) -- 5197(line=194, offs=61)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5151(line=194, offs=11) -- 5201(line=194, offs=61)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5173(line=194, offs=37) -- 5195(line=194, offs=59)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5177(line=194, offs=37) -- 5199(line=194, offs=59)
 */
 ATSINSmove_ldelay(tmp334, atstype_boxed, ATSPMVcfunlab(1, __patsfun_138, ())) ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5155(line=194, offs=19) -- 5196(line=194, offs=60)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5159(line=194, offs=19) -- 5200(line=194, offs=60)
 */
 
 /*
@@ -9319,7 +9319,7 @@
 } /* end of [__patsfun_137] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5173(line=194, offs=37) -- 5195(line=194, offs=59)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5177(line=194, offs=37) -- 5199(line=194, offs=59)
 */
 /*
 local: 
@@ -9336,17 +9336,17 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5173(line=194, offs=37) -- 5195(line=194, offs=59)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5177(line=194, offs=37) -- 5199(line=194, offs=59)
 */
 ATSINSflab(__patsflab___patsfun_138):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5173(line=194, offs=37) -- 5195(line=194, offs=59)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5177(line=194, offs=37) -- 5199(line=194, offs=59)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5181(line=194, offs=45) -- 5194(line=194, offs=58)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5185(line=194, offs=45) -- 5198(line=194, offs=58)
 */
 
 ATSINSmove_nil(tmpret335) ;
@@ -9359,7 +9359,7 @@
 } /* end of [__patsfun_138] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5221(line=196, offs=11) -- 5243(line=196, offs=33)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5225(line=196, offs=11) -- 5247(line=196, offs=33)
 */
 /*
 local: 
@@ -9376,17 +9376,17 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5221(line=196, offs=11) -- 5243(line=196, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5225(line=196, offs=11) -- 5247(line=196, offs=33)
 */
 ATSINSflab(__patsflab___patsfun_139):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5221(line=196, offs=11) -- 5243(line=196, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5225(line=196, offs=11) -- 5247(line=196, offs=33)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5229(line=196, offs=19) -- 5242(line=196, offs=32)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5233(line=196, offs=19) -- 5246(line=196, offs=32)
 */
 
 ATSINSmove_nil(tmpret336) ;
@@ -9481,7 +9481,7 @@
 } /* end of [ATSLIB_056_prelude__gt_g1int_int__7__7] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5342(line=200, offs=13) -- 5392(line=200, offs=63)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5346(line=200, offs=13) -- 5396(line=200, offs=63)
 */
 /*
 local: rip_128$0(level=0), loop_135$0(level=1)
@@ -9500,27 +9500,27 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5342(line=200, offs=13) -- 5392(line=200, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5346(line=200, offs=13) -- 5396(line=200, offs=63)
 */
 ATSINSflab(__patsflab___patsfun_142):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5342(line=200, offs=13) -- 5392(line=200, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5346(line=200, offs=13) -- 5396(line=200, offs=63)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5375(line=200, offs=46) -- 5386(line=200, offs=57)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5379(line=200, offs=46) -- 5390(line=200, offs=57)
 */
 ATSINSmove(tmp348, rip_128(env0, env1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5370(line=200, offs=41) -- 5390(line=200, offs=61)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5374(line=200, offs=41) -- 5394(line=200, offs=61)
 */
 ATSINSmove(tmp347, loop_135(tmp348, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5350(line=200, offs=21) -- 5391(line=200, offs=62)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5354(line=200, offs=21) -- 5395(line=200, offs=62)
 */
 
 /*
@@ -9542,7 +9542,7 @@
 } /* end of [__patsfun_142] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5420(line=202, offs=13) -- 5472(line=202, offs=65)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5424(line=202, offs=13) -- 5476(line=202, offs=65)
 */
 /*
 local: 
@@ -9560,21 +9560,21 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5420(line=202, offs=13) -- 5472(line=202, offs=65)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5424(line=202, offs=13) -- 5476(line=202, offs=65)
 */
 ATSINSflab(__patsflab___patsfun_143):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5420(line=202, offs=13) -- 5472(line=202, offs=65)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5424(line=202, offs=13) -- 5476(line=202, offs=65)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5448(line=202, offs=41) -- 5470(line=202, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5452(line=202, offs=41) -- 5474(line=202, offs=63)
 */
 ATSINSmove_ldelay(tmp350, atstype_boxed, ATSPMVcfunlab(1, __patsfun_144, ())) ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5428(line=202, offs=21) -- 5471(line=202, offs=64)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5432(line=202, offs=21) -- 5475(line=202, offs=64)
 */
 
 /*
@@ -9596,7 +9596,7 @@
 } /* end of [__patsfun_143] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5448(line=202, offs=41) -- 5470(line=202, offs=63)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5452(line=202, offs=41) -- 5474(line=202, offs=63)
 */
 /*
 local: 
@@ -9613,17 +9613,17 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5448(line=202, offs=41) -- 5470(line=202, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5452(line=202, offs=41) -- 5474(line=202, offs=63)
 */
 ATSINSflab(__patsflab___patsfun_144):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5448(line=202, offs=41) -- 5470(line=202, offs=63)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5452(line=202, offs=41) -- 5474(line=202, offs=63)
 */
 ATSif(
 arg0
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5456(line=202, offs=49) -- 5469(line=202, offs=62)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5460(line=202, offs=49) -- 5473(line=202, offs=62)
 */
 
 ATSINSmove_nil(tmpret351) ;
@@ -9636,7 +9636,7 @@
 } /* end of [__patsfun_144] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5570(line=210, offs=4) -- 6009(line=228, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5574(line=210, offs=4) -- 6013(line=228, offs=6)
 */
 /*
 local: is_prime_52$0(level=0), rip_128$0(level=0)
@@ -9653,11 +9653,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5570(line=210, offs=4) -- 6009(line=228, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5574(line=210, offs=4) -- 6013(line=228, offs=6)
 */
 ATSINSflab(__patsflab_little_omega_145):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5608(line=211, offs=3) -- 6009(line=228, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5612(line=211, offs=3) -- 6013(line=228, offs=6)
 */
 /*
 letpush(beg)
@@ -9667,12 +9667,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5993(line=227, offs=5) -- 6003(line=227, offs=15)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5997(line=227, offs=5) -- 6007(line=227, offs=15)
 */
 ATSINSmove(tmpret353, loop_146(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5608(line=211, offs=3) -- 6009(line=228, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5612(line=211, offs=3) -- 6013(line=228, offs=6)
 */
 /*
 INSletpop()
@@ -9682,7 +9682,7 @@
 } /* end of [little_omega_145] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5620(line=212, offs=9) -- 5983(line=225, offs=27)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5624(line=212, offs=9) -- 5987(line=225, offs=27)
 */
 /*
 local: is_prime_52$0(level=0), rip_128$0(level=0), loop_146$0(level=1)
@@ -9711,120 +9711,120 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5620(line=212, offs=9) -- 5983(line=225, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5624(line=212, offs=9) -- 5987(line=225, offs=27)
 */
 ATSINSflab(__patsflab_loop_146):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5713(line=213, offs=10) -- 5721(line=213, offs=18)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5717(line=213, offs=10) -- 5725(line=213, offs=18)
 */
 ATSINSmove(tmp355, ATSLIB_056_prelude__gte_g1int_int__72__4(arg1, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5710(line=213, offs=7) -- 5983(line=225, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5714(line=213, offs=7) -- 5987(line=225, offs=27)
 */
 ATSif(
 tmp355
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5738(line=214, offs=12) -- 5748(line=214, offs=22)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5742(line=214, offs=12) -- 5752(line=214, offs=22)
 */
 ATSINSmove(tmp358, is_prime_52(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5735(line=214, offs=9) -- 5791(line=217, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5739(line=214, offs=9) -- 5795(line=217, offs=12)
 */
 ATSif(
 tmp358
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5765(line=215, offs=11) -- 5766(line=215, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5769(line=215, offs=11) -- 5770(line=215, offs=12)
 */
 ATSINSmove(tmpret354, ATSPMVi0nt(1)) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5790(line=217, offs=11) -- 5791(line=217, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5794(line=217, offs=11) -- 5795(line=217, offs=12)
 */
 ATSINSmove(tmpret354, ATSPMVi0nt(0)) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5814(line=219, offs=12) -- 5841(line=219, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5818(line=219, offs=12) -- 5845(line=219, offs=39)
 */
 ATSINSmove(tmp363, atspre_g0int_mod_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5814(line=219, offs=12) -- 5841(line=219, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5818(line=219, offs=12) -- 5845(line=219, offs=39)
 */
 ATSINSmove(tmp360, ATSLIB_056_prelude__eq_g0int_int__13__17(tmp363, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5814(line=219, offs=12) -- 5841(line=219, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5818(line=219, offs=12) -- 5845(line=219, offs=39)
 */
 ATSif(
 tmp360
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5814(line=219, offs=12) -- 5841(line=219, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5818(line=219, offs=12) -- 5845(line=219, offs=39)
 */
 ATSINSmove(tmp359, is_prime_52(arg1)) ;
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5814(line=219, offs=12) -- 5841(line=219, offs=39)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5818(line=219, offs=12) -- 5845(line=219, offs=39)
 */
 ATSINSmove(tmp359, ATSPMVbool_false()) ;
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5811(line=219, offs=9) -- 5983(line=225, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5815(line=219, offs=9) -- 5987(line=225, offs=27)
 */
 ATSif(
 tmp359
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5861(line=220, offs=14) -- 5868(line=220, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5865(line=220, offs=14) -- 5872(line=220, offs=21)
 */
 ATSINSmove(tmp367, atspre_g1int_div_int(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5861(line=220, offs=14) -- 5872(line=220, offs=25)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5865(line=220, offs=14) -- 5876(line=220, offs=25)
 */
 ATSINSmove(tmp364, ATSLIB_056_prelude__gt_g1int_int__7__8(tmp367, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5858(line=220, offs=11) -- 5943(line=223, offs=14)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5862(line=220, offs=11) -- 5947(line=223, offs=14)
 */
 ATSif(
 tmp364
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5899(line=221, offs=22) -- 5910(line=221, offs=33)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5903(line=221, offs=22) -- 5914(line=221, offs=33)
 */
 ATSINSmove(tmp369, rip_128(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5894(line=221, offs=17) -- 5914(line=221, offs=37)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5898(line=221, offs=17) -- 5918(line=221, offs=37)
 */
 ATSINSmove(tmp368, loop_146(tmp369, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5890(line=221, offs=13) -- 5914(line=221, offs=37)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5894(line=221, offs=13) -- 5918(line=221, offs=37)
 */
 ATSINSmove(tmpret354, atspre_g0int_add_int(ATSPMVi0nt(1), tmp368)) ;
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5942(line=223, offs=13) -- 5943(line=223, offs=14)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5946(line=223, offs=13) -- 5947(line=223, offs=14)
 */
 ATSINSmove(tmpret354, ATSPMVi0nt(1)) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5975(line=225, offs=19) -- 5982(line=225, offs=26)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5979(line=225, offs=19) -- 5986(line=225, offs=26)
 */
 ATSINSmove(tmp370, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5967(line=225, offs=11) -- 5983(line=225, offs=27)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 5971(line=225, offs=11) -- 5987(line=225, offs=27)
 */
 ATStailcal_beg()
 ATSINSmove_tlcal(apy0, arg0) ;
@@ -9964,7 +9964,7 @@
 } /* end of [ATSLIB_056_prelude__gt_g1int_int__7__8] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6043(line=231, offs=4) -- 6532(line=243, offs=8)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6047(line=231, offs=4) -- 6536(line=243, offs=8)
 */
 /*
 local: prime_factors_134$0(level=0)
@@ -9985,11 +9985,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6043(line=231, offs=4) -- 6532(line=243, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6047(line=231, offs=4) -- 6536(line=243, offs=8)
 */
 ATSINSflab(__patsflab_totient_150):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6076(line=232, offs=3) -- 6532(line=243, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6080(line=232, offs=3) -- 6536(line=243, offs=8)
 */
 ATScaseof_beg()
 /*
@@ -9997,15 +9997,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6093(line=233, offs=7) -- 6094(line=233, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6097(line=233, offs=7) -- 6098(line=233, offs=8)
 */
 ATSINSlab(__atstmplab29):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6051(line=231, offs=12) -- 6052(line=231, offs=13)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6055(line=231, offs=12) -- 6056(line=231, offs=13)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab31) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6094(line=233, offs=8) -- 6094(line=233, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6098(line=233, offs=8) -- 6098(line=233, offs=8)
 */
 ATSINSlab(__atstmplab30):
 /*
@@ -10015,14 +10015,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6098(line=233, offs=12) -- 6099(line=233, offs=13)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6102(line=233, offs=12) -- 6103(line=233, offs=13)
 */
 ATSINSmove(tmpret371, ATSPMVi0nt(1)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6107(line=234, offs=8) -- 6107(line=234, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6111(line=234, offs=8) -- 6111(line=234, offs=8)
 */
 ATSINSlab(__atstmplab31):
 /*
@@ -10032,43 +10032,43 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6112(line=234, offs=13) -- 6532(line=243, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6116(line=234, offs=13) -- 6536(line=243, offs=8)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6266(line=238, offs=11) -- 6267(line=238, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6270(line=238, offs=11) -- 6271(line=238, offs=12)
 */
 /*
 ATSINStmpdec(tmpref376) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6286(line=238, offs=31) -- 6301(line=238, offs=46)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6290(line=238, offs=31) -- 6305(line=238, offs=46)
 */
 ATSINSmove(tmpref376, prime_factors_134(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6313(line=239, offs=11) -- 6323(line=239, offs=21)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6317(line=239, offs=11) -- 6327(line=239, offs=21)
 */
 /*
 ATSINStmpdec(tmpref377) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6326(line=239, offs=24) -- 6352(line=239, offs=50)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6330(line=239, offs=24) -- 6356(line=239, offs=50)
 */
 ATSINSmove_fltrec_beg()
 ATSINSstore_fltrec_ofs(tmpref377, postiats_tyrec_0, atslab__first, ATSPMVi0nt(1)) ;
 ATSINSstore_fltrec_ofs(tmpref377, postiats_tyrec_0, atslab__second, ATSPMVi0nt(1)) ;
 ATSINSmove_fltrec_end()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6370(line=240, offs=11) -- 6371(line=240, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6374(line=240, offs=11) -- 6375(line=240, offs=12)
 */
 /*
 ATSINStmpdec(tmpref378) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6374(line=240, offs=15) -- 6461(line=240, offs=102)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6378(line=240, offs=15) -- 6465(line=240, offs=102)
 */
 ATSINSmove(tmpref378, ATSLIB_056_prelude__stream_vt_foldleft_cloptr__153__1(tmpref376, tmpref377, ATSPMVcfunlab(1, __patsfun_157, ()))) ;
 
@@ -10077,17 +10077,17 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6492(line=242, offs=17) -- 6513(line=242, offs=38)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6496(line=242, offs=17) -- 6517(line=242, offs=38)
 */
 ATSINSmove(tmp396, atspre_g0int_mul_int(arg0, ATSSELfltrec(tmpref378, postiats_tyrec_0, atslab__first))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6482(line=242, offs=7) -- 6524(line=242, offs=49)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6486(line=242, offs=7) -- 6528(line=242, offs=49)
 */
 ATSINSmove(tmpret371, atspre_g0int_div_int(tmp396, ATSSELfltrec(tmpref378, postiats_tyrec_0, atslab__second))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6112(line=234, offs=13) -- 6532(line=243, offs=8)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6116(line=234, offs=13) -- 6536(line=243, offs=8)
 */
 /*
 INSletpop()
@@ -10104,7 +10104,7 @@
 } /* end of [totient_150] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6125(line=235, offs=10) -- 6248(line=236, offs=80)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6129(line=235, offs=10) -- 6252(line=236, offs=80)
 */
 /*
 local: 
@@ -10124,26 +10124,26 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6125(line=235, offs=10) -- 6248(line=236, offs=80)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6129(line=235, offs=10) -- 6252(line=236, offs=80)
 */
 ATSINSflab(__patsflab_adjust_contents_151):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6207(line=236, offs=39) -- 6212(line=236, offs=44)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6211(line=236, offs=39) -- 6216(line=236, offs=44)
 */
 ATSINSmove(tmp374, atspre_g0int_sub_int(arg1, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6188(line=236, offs=20) -- 6213(line=236, offs=45)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6192(line=236, offs=20) -- 6217(line=236, offs=45)
 */
 ATSINSmove(tmp373, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__first), tmp374)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6224(line=236, offs=56) -- 6246(line=236, offs=78)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6228(line=236, offs=56) -- 6250(line=236, offs=78)
 */
 ATSINSmove(tmp375, atspre_g0int_mul_int(ATSSELfltrec(arg0, postiats_tyrec_0, atslab__second), arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6177(line=236, offs=9) -- 6248(line=236, offs=80)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6181(line=236, offs=9) -- 6252(line=236, offs=80)
 */
 ATSINSmove_fltrec_beg()
 ATSINSstore_fltrec_ofs(tmpret372, postiats_tyrec_0, atslab__first, tmp373) ;
@@ -10600,7 +10600,7 @@
 } /* end of [loop_154__154__1] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6415(line=240, offs=56) -- 6460(line=240, offs=101)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6419(line=240, offs=56) -- 6464(line=240, offs=101)
 */
 /*
 local: adjust_contents_151$0(level=1)
@@ -10617,11 +10617,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6415(line=240, offs=56) -- 6460(line=240, offs=101)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6419(line=240, offs=56) -- 6464(line=240, offs=101)
 */
 ATSINSflab(__patsflab___patsfun_157):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6434(line=240, offs=75) -- 6460(line=240, offs=101)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6438(line=240, offs=75) -- 6464(line=240, offs=101)
 */
 ATSINSmove(tmpret395, adjust_contents_151(arg0, ATSderef(arg1, atstkind_t0ype(atstype_int)))) ;
 
@@ -10630,7 +10630,7 @@
 } /* end of [__patsfun_157] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6763(line=248, offs=4) -- 7151(line=262, offs=6)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6767(line=248, offs=4) -- 7155(line=262, offs=6)
 */
 /*
 local: witness_0$0(level=0), totient_150$0(level=0)
@@ -10647,11 +10647,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6763(line=248, offs=4) -- 7151(line=262, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6767(line=248, offs=4) -- 7155(line=262, offs=6)
 */
 ATSINSflab(__patsflab_totient_sum_158):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6803(line=249, offs=3) -- 7151(line=262, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6807(line=249, offs=3) -- 7155(line=262, offs=6)
 */
 /*
 letpush(beg)
@@ -10661,12 +10661,12 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7135(line=261, offs=5) -- 7145(line=261, offs=15)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7139(line=261, offs=5) -- 7149(line=261, offs=15)
 */
 ATSINSmove(tmpret397, loop_159(ATSPMVi0nt(1), arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6803(line=249, offs=3) -- 7151(line=262, offs=6)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6807(line=249, offs=3) -- 7155(line=262, offs=6)
 */
 /*
 INSletpop()
@@ -10676,7 +10676,7 @@
 } /* end of [totient_sum_158] */
 
 /*
-/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6815(line=250, offs=9) -- 7125(line=259, offs=40)
+/home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6819(line=250, offs=9) -- 7129(line=259, offs=40)
 */
 /*
 local: witness_0$0(level=0), totient_150$0(level=0), loop_159$0(level=1)
@@ -10706,60 +10706,60 @@
 */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6815(line=250, offs=9) -- 7125(line=259, offs=40)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6819(line=250, offs=9) -- 7129(line=259, offs=40)
 */
 ATSINSflab(__patsflab_loop_159):
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6918(line=251, offs=10) -- 6927(line=251, offs=19)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6922(line=251, offs=10) -- 6931(line=251, offs=19)
 */
 ATSINSmove(tmp399, ATSLIB_056_prelude__lt_g1int_int__54__3(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6915(line=251, offs=7) -- 7125(line=259, offs=40)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6919(line=251, offs=7) -- 7129(line=259, offs=40)
 */
 ATSif(
 tmp399
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6941(line=252, offs=9) -- 7074(line=257, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6945(line=252, offs=9) -- 7078(line=257, offs=12)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6959(line=253, offs=15) -- 6960(line=253, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6963(line=253, offs=15) -- 6964(line=253, offs=16)
 */
 /*
 ATSINStmpdec(tmpref402) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6968(line=253, offs=24) -- 6973(line=253, offs=29)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6972(line=253, offs=24) -- 6977(line=253, offs=29)
 */
 ATSINSmove(tmp403, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6963(line=253, offs=19) -- 6981(line=253, offs=37)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6967(line=253, offs=19) -- 6985(line=253, offs=37)
 */
 ATSINSmove(tmpref402, loop_159(tmp403, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6996(line=254, offs=15) -- 6997(line=254, offs=16)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7000(line=254, offs=15) -- 7001(line=254, offs=16)
 */
 /*
 ATSINStmpdec(tmpref404) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7027(line=254, offs=46) -- 7036(line=254, offs=55)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7031(line=254, offs=46) -- 7040(line=254, offs=55)
 */
 ATSINSmove(tmp410, totient_150(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7019(line=254, offs=38) -- 7038(line=254, offs=57)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7023(line=254, offs=38) -- 7042(line=254, offs=57)
 */
 ATSINSmove(tmp409, witness_0(tmp410)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7000(line=254, offs=19) -- 7039(line=254, offs=58)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7004(line=254, offs=19) -- 7043(line=254, offs=58)
 */
 ATSINSmove(tmpref404, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__161__1(tmpref402, tmp409)) ;
 
@@ -10768,28 +10768,28 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7061(line=256, offs=11) -- 7062(line=256, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7065(line=256, offs=11) -- 7066(line=256, offs=12)
 */
 ATSINSmove(tmpret398, tmpref404) ;
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6941(line=252, offs=9) -- 7074(line=257, offs=12)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 6945(line=252, offs=9) -- 7078(line=257, offs=12)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7094(line=259, offs=9) -- 7125(line=259, offs=40)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7098(line=259, offs=9) -- 7129(line=259, offs=40)
 */
 ATSINSmove(tmp416, totient_150(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7094(line=259, offs=9) -- 7125(line=259, offs=40)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7098(line=259, offs=9) -- 7129(line=259, offs=40)
 */
 ATSINSmove(tmp415, witness_0(tmp416)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7094(line=259, offs=9) -- 7125(line=259, offs=40)
+emit_instr: loc0 = /home/vanessa/.atspkg/0.3.10/lib/ats2-postiats-0.3.9/ats-src/number-theory-internal.dats: 7098(line=259, offs=9) -- 7129(line=259, offs=40)
 */
 ATSINSmove(tmpret398, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__46__2(tmp415)) ;
 
diff --git a/cbits/numerics.c b/cbits/numerics.c
--- a/cbits/numerics.c
+++ b/cbits/numerics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-10]
-** The starting compilation time is: 2018-4-22: 21h:35m
+** The starting compilation time is: 2018-4-28:  5h: 1m
 **
 */
 
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: fast-arithmetic
-version: 0.6.0.1
+version: 0.6.0.2
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -50,12 +50,15 @@
     include-dirs: .atspkg/contrib/ats-includes-0.3.10/ccomp/runtime
                   .atspkg/contrib/ats-includes-0.3.10/ .atspkg/contrib
     ghc-options: -Wall -optc-mtune=native -optc-flto -optc-O3
-                 -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
     build-depends:
-        base >=4.10 && <5,
+        base >=4.7 && <5,
         composition-prelude >=1.2.0.0,
         gmpint -any
     
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
+                     -Wcompat
+    
     if flag(development)
         ghc-options: -Werror
 
@@ -70,9 +73,15 @@
         fast-arithmetic -any,
         hspec -any,
         QuickCheck -any,
-        arithmoi -any,
-        combinat-compat -any
+        arithmoi -any
     
+    if impl(ghc >=8.4)
+        build-depends:
+            combinat-compat -any
+    else
+        build-depends:
+            combinat -any
+    
     if flag(development)
         ghc-options: -Werror
     
@@ -90,8 +99,14 @@
         base -any,
         fast-arithmetic -any,
         criterion -any,
-        arithmoi -any,
-        combinat-compat -any
+        arithmoi -any
+    
+    if impl(ghc >=8.4)
+        build-depends:
+            combinat-compat -any
+    else
+        build-depends:
+            combinat -any
     
     if flag(development)
         ghc-options: -Werror
diff --git a/pkg.dhall b/pkg.dhall
--- a/pkg.dhall
+++ b/pkg.dhall
@@ -1,5 +1,5 @@
 let prelude = https://raw.githubusercontent.com/vmchale/atspkg/master/dhall/atspkg-prelude.dhall
 
-in λ(x : List Integer) → 
-  prelude.makeHsPkg { x = x, name = "fast-arithmetic" } 
-    ⫽ { libDeps = prelude.mapPlainDeps [ "atscntrb-hx-intinf" ], description = [ "Number theory & combinatorics library written in ATS" ] : Optional Text }
+in λ(x : List Integer) →
+  prelude.makeHsPkg { x = x, name = "fast-arithmetic" }
+    ⫽ { libDeps = prelude.mapPlainDeps [ "atscntrb-hx-intinf" ], description = [ "Library for number theory & combinatorics in ATS" ] : Optional Text }
diff --git a/src/Numeric/Combinatorics.hs b/src/Numeric/Combinatorics.hs
--- a/src/Numeric/Combinatorics.hs
+++ b/src/Numeric/Combinatorics.hs
@@ -2,7 +2,7 @@
 Module      : Numeric.Combinatorics
 Copyright   : Copyright (c) 2018 Vanessa McHale
 
-This provides a few facilities for working with common combinatorial
+This provides facilities for working with common combinatorial
 functions.
 -}
 
@@ -27,15 +27,14 @@
 foreign import ccall unsafe catalan_ats :: CInt -> Ptr GMPInt
 foreign import ccall unsafe derangements_ats :: CInt -> Ptr GMPInt
 
--- | \\( !n \\). See [here](http://mathworld.wolfram.com/Derangement.html).
+-- | \\( !n \\)
 --
--- > λ:> fmap derangement [0..10] :: [Integer]
+-- > λ:> derangement <$> [0..10]
 -- > [1,0,1,2,9,44,265,1854,14833,133496,1334961]
 derangement :: Int -> Integer
 derangement = unsafePerformIO . conjugateGMP derangements_ats
 
--- | The @n@th Catalan number, with indexing beginning at @0@. See
--- [here](http://mathworld.wolfram.com/CatalanNumber.html).
+-- | The @n@th Catalan number, with indexing beginning at @0@.
 --
 -- > λ:> catalan <$> [0..9]
 -- > [1,1,2,5,14,42,132,429,1430,4862]
@@ -49,6 +48,6 @@
 factorial :: Int -> Integer
 factorial = unsafePerformIO . conjugateGMP factorial_ats
 
--- | See [here](http://mathworld.wolfram.com/DoubleFactorial.html).
+-- | \( n!! \)
 doubleFactorial :: Int -> Integer
 doubleFactorial = unsafePerformIO . conjugateGMP double_factorial_ats
diff --git a/src/Numeric/Common.hs b/src/Numeric/Common.hs
--- a/src/Numeric/Common.hs
+++ b/src/Numeric/Common.hs
@@ -5,13 +5,13 @@
 import           Data.Word
 import           Foreign.C
 
-asTest :: Integral a => (CInt -> CBool) -> a -> Bool
+asTest :: Integral a => (CInt -> CUChar) -> a -> Bool
 asTest f = convertBool . f . fromIntegral
 
 conjugate :: (Integral a, Integral b) => (CInt -> CInt) -> a -> b
 conjugate f = fromIntegral . f . fromIntegral
 
-convertBool :: CBool -> Bool
+convertBool :: CUChar -> Bool
 convertBool = go . fromIntegral
     where
         go :: Word8 -> Bool
diff --git a/src/Numeric/NumberTheory.hs b/src/Numeric/NumberTheory.hs
--- a/src/Numeric/NumberTheory.hs
+++ b/src/Numeric/NumberTheory.hs
@@ -2,7 +2,7 @@
 Module      : Numeric.NumberTheory
 Copyright   : Copyright (c) 2018 Vanessa McHale
 
-This module provides fast number theoretic functions when possible.
+This module provides fast number theoretic functions.
 -}
 
 module Numeric.NumberTheory ( totient
@@ -20,8 +20,8 @@
 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 -> CBool
-foreign import ccall unsafe is_prime_ats :: CInt -> CBool
+foreign import ccall unsafe is_perfect_ats :: CInt -> CUChar
+foreign import ccall unsafe is_prime_ats :: CInt -> CUChar
 
 -- | \( O(\sqrt(n)) \)
 isPrime :: Int -> Bool
@@ -35,7 +35,7 @@
 sumDivisors :: Int -> Int
 sumDivisors = conjugate sum_divisors_ats
 
--- Number of distinct prime factors
+-- | Number of distinct prime factors
 littleOmega :: Int -> Int
 littleOmega = conjugate little_omega_ats
 
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -12,7 +12,7 @@
 
 hsIsPrime :: (Integral a) => a -> Bool
 hsIsPrime 1 = False
-hsIsPrime x = all ((/=0) . (x `mod`)) [2..up]
+hsIsPrime x = all ((/=0) . (x `rem`)) [2..up]
     where up = floor (sqrt (fromIntegral x :: Float))
 
 toInt :: JacobiSymbol -> Int
@@ -28,17 +28,21 @@
     where g = (0, 1) : (1, 0) : zipWith step g (tail g)
           step (_, n) (i, m) = (i + 1, i * (n + m))
 
+-- FIXME report bug in integer-gmp
 tooBig :: Int -> Int -> Bool
 tooBig x y = go x y >= 2 ^ (16 :: Integer)
     where
         go :: Int -> Int -> Integer
         go m n = fromIntegral m ^ (fromIntegral n :: Integer)
 
-agree :: (Eq a, Show b, Integral b, Arbitrary b) => String -> (b -> a) -> (b -> a) -> SpecWith ()
-agree s f g = describe s $
+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" $
-        \n -> n < 1 || f n == g n
+        \n -> n < lower || f n == g n
 
+agree :: (Eq a, Show b, Integral b, Arbitrary b) => String -> (b -> a) -> (b -> a) -> SpecWith ()
+agree = agreeL 1
+
 main :: IO ()
 main = hspec $ parallel $ do
 
@@ -69,7 +73,7 @@
             \a -> a < 0 || doubleFactorial a == Ext.doubleFactorial a
     describe "catalan" $
         prop "should agree" $
-            \a -> a < 0 || catalan a == Ext.catalan a -- FIXME is Ext. catalan wrong for n = 9?
+            \a -> a < 0 || catalan a == Ext.catalan a
     describe "factorial" $
         prop "should agree" $
             \a -> a < 0 || factorial a == Ext.factorial a
