diff --git a/ats-src/combinatorics-ffi.dats b/ats-src/combinatorics-ffi.dats
--- a/ats-src/combinatorics-ffi.dats
+++ b/ats-src/combinatorics-ffi.dats
@@ -25,10 +25,6 @@
 fun factorial_ats {n : nat} : int(n) -> Intinf =
   "mac#"
 
-extern
-fun derangement_ats {n : nat} : int(n) -> Intinf =
-  "mac#"
-
 implement choose_ats (n, k) =
   choose(n, k)
 
@@ -40,6 +36,3 @@
 
 implement factorial_ats (m) =
   fact(m)
-
-implement derangement_ats (m) =
-  derangements(m)
diff --git a/cbits/combinatorics.c b/cbits/combinatorics.c
--- a/cbits/combinatorics.c
+++ b/cbits/combinatorics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-9: 15h:48m
+** The starting compilation time is: 2018-1-9: 17h: 0m
 **
 */
 
@@ -646,12 +646,6 @@
 factorial_ats(atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-derangement_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
 /*
 /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 280(line=10, offs=4) -- 980(line=34, offs=6)
 */
@@ -4017,7 +4011,7 @@
 } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 665(line=32, offs=22) -- 688(line=33, offs=15)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 597(line=28, offs=22) -- 620(line=29, offs=15)
 */
 /*
 local: choose_44$0(level=0)
@@ -4034,11 +4028,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 654(line=32, offs=11) -- 688(line=33, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 586(line=28, offs=11) -- 620(line=29, offs=15)
 */
 ATSINSflab(__patsflab_choose_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 676(line=33, offs=3) -- 688(line=33, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 608(line=29, offs=3) -- 620(line=29, offs=15)
 */
 ATSINSmove(tmpret131, choose_44(arg0, arg1)) ;
 
@@ -4047,7 +4041,7 @@
 } /* end of [choose_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 717(line=35, offs=28) -- 740(line=36, offs=15)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 649(line=31, offs=28) -- 672(line=32, offs=15)
 */
 /*
 local: choose_44$0(level=0)
@@ -4064,11 +4058,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 700(line=35, offs=11) -- 740(line=36, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 632(line=31, offs=11) -- 672(line=32, offs=15)
 */
 ATSINSflab(__patsflab_permutations_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 728(line=36, offs=3) -- 740(line=36, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 660(line=32, offs=3) -- 672(line=32, offs=15)
 */
 ATSINSmove(tmpret132, choose_44(arg0, arg1)) ;
 
@@ -4077,7 +4071,7 @@
 } /* end of [permutations_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 773(line=38, offs=32) -- 788(line=39, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 705(line=34, offs=32) -- 720(line=35, offs=10)
 */
 /*
 local: dfact_34$0(level=0)
@@ -4094,11 +4088,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 752(line=38, offs=11) -- 789(line=39, offs=11)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 684(line=34, offs=11) -- 721(line=35, offs=11)
 */
 ATSINSflab(__patsflab_double_factorial_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 781(line=39, offs=3) -- 788(line=39, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 713(line=35, offs=3) -- 720(line=35, offs=10)
 */
 ATSINSmove(tmpret133, dfact_34(arg0)) ;
 
@@ -4107,7 +4101,7 @@
 } /* end of [double_factorial_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 815(line=41, offs=25) -- 829(line=42, offs=9)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 747(line=37, offs=25) -- 761(line=38, offs=9)
 */
 /*
 local: fact_28$0(level=0)
@@ -4124,47 +4118,17 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 801(line=41, offs=11) -- 830(line=42, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 733(line=37, offs=11) -- 762(line=38, offs=10)
 */
 ATSINSflab(__patsflab_factorial_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 823(line=42, offs=3) -- 829(line=42, offs=9)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 755(line=38, offs=3) -- 761(line=38, offs=9)
 */
 ATSINSmove(tmpret134, fact_28(arg0)) ;
 
 ATSfunbody_end()
 ATSreturn(tmpret134) ;
 } /* end of [factorial_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 858(line=44, offs=27) -- 880(line=45, offs=17)
-*/
-/*
-local: derangements_0$0(level=0)
-global: derangements_0$0(level=0), derangement_ats$62$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-derangement_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret135, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 842(line=44, offs=11) -- 881(line=45, offs=18)
-*/
-ATSINSflab(__patsflab_derangement_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 866(line=45, offs=3) -- 880(line=45, offs=17)
-*/
-ATSINSmove(tmpret135, derangements_0(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret135) ;
-} /* end of [derangement_ats] */
 
 /*
 ** for initialization(dynloading)
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,5 +1,5 @@
 name:                fast-arithmetic
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Fast functions on integers.
 description:         Fast functions for number theory and combinatorics with a high level of safety guaranteed by [ATS](http://www.ats-lang.org/). This package also provides a
                      'Storable' instance for GMP's @mpz@ type.
