diff --git a/hmatrix-special.cabal b/hmatrix-special.cabal
--- a/hmatrix-special.cabal
+++ b/hmatrix-special.cabal
@@ -1,5 +1,5 @@
 Name:               hmatrix-special
-Version:            0.4.0.0
+Version:            0.4.0.1
 License:            GPL
 License-file:       LICENSE
 Author:             Alberto Ruiz
@@ -29,8 +29,7 @@
 library
     Build-Depends:  base <5, hmatrix>=0.17, hmatrix-gsl
 
-    Extensions:     ForeignFunctionInterface,
-                    CPP
+    Extensions:     ForeignFunctionInterface
 
     hs-source-dirs:     lib
 
@@ -67,7 +66,7 @@
     other-modules:      Numeric.GSL.Special.Internal
 
     ghc-options:  -Wall -fno-warn-unused-binds
-                            
+
     if flag(safe-cheap)
         cpp-options: -DSAFE_CHEAP=safe
     else
diff --git a/lib/Numeric/GSL/Special/Airy.hs b/lib/Numeric/GSL/Special/Airy.hs
--- a/lib/Numeric/GSL/Special/Airy.hs
+++ b/lib/Numeric/GSL/Special/Airy.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Airy
diff --git a/lib/Numeric/GSL/Special/Bessel.hs b/lib/Numeric/GSL/Special/Bessel.hs
--- a/lib/Numeric/GSL/Special/Bessel.hs
+++ b/lib/Numeric/GSL/Special/Bessel.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Bessel
diff --git a/lib/Numeric/GSL/Special/Clausen.hs b/lib/Numeric/GSL/Special/Clausen.hs
--- a/lib/Numeric/GSL/Special/Clausen.hs
+++ b/lib/Numeric/GSL/Special/Clausen.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Clausen
diff --git a/lib/Numeric/GSL/Special/Coulomb.hs b/lib/Numeric/GSL/Special/Coulomb.hs
--- a/lib/Numeric/GSL/Special/Coulomb.hs
+++ b/lib/Numeric/GSL/Special/Coulomb.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Coulomb
diff --git a/lib/Numeric/GSL/Special/Coupling.hs b/lib/Numeric/GSL/Special/Coupling.hs
--- a/lib/Numeric/GSL/Special/Coupling.hs
+++ b/lib/Numeric/GSL/Special/Coupling.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Coupling
diff --git a/lib/Numeric/GSL/Special/Dawson.hs b/lib/Numeric/GSL/Special/Dawson.hs
--- a/lib/Numeric/GSL/Special/Dawson.hs
+++ b/lib/Numeric/GSL/Special/Dawson.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Dawson
diff --git a/lib/Numeric/GSL/Special/Debye.hs b/lib/Numeric/GSL/Special/Debye.hs
--- a/lib/Numeric/GSL/Special/Debye.hs
+++ b/lib/Numeric/GSL/Special/Debye.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Debye
diff --git a/lib/Numeric/GSL/Special/Dilog.hs b/lib/Numeric/GSL/Special/Dilog.hs
--- a/lib/Numeric/GSL/Special/Dilog.hs
+++ b/lib/Numeric/GSL/Special/Dilog.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Dilog
diff --git a/lib/Numeric/GSL/Special/Elementary.hs b/lib/Numeric/GSL/Special/Elementary.hs
--- a/lib/Numeric/GSL/Special/Elementary.hs
+++ b/lib/Numeric/GSL/Special/Elementary.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Elementary
diff --git a/lib/Numeric/GSL/Special/Ellint.hs b/lib/Numeric/GSL/Special/Ellint.hs
--- a/lib/Numeric/GSL/Special/Ellint.hs
+++ b/lib/Numeric/GSL/Special/Ellint.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Ellint
diff --git a/lib/Numeric/GSL/Special/Erf.hs b/lib/Numeric/GSL/Special/Erf.hs
--- a/lib/Numeric/GSL/Special/Erf.hs
+++ b/lib/Numeric/GSL/Special/Erf.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Erf
diff --git a/lib/Numeric/GSL/Special/Exp.hs b/lib/Numeric/GSL/Special/Exp.hs
--- a/lib/Numeric/GSL/Special/Exp.hs
+++ b/lib/Numeric/GSL/Special/Exp.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Exp
diff --git a/lib/Numeric/GSL/Special/Expint.hs b/lib/Numeric/GSL/Special/Expint.hs
--- a/lib/Numeric/GSL/Special/Expint.hs
+++ b/lib/Numeric/GSL/Special/Expint.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Expint
diff --git a/lib/Numeric/GSL/Special/Fermi_dirac.hs b/lib/Numeric/GSL/Special/Fermi_dirac.hs
--- a/lib/Numeric/GSL/Special/Fermi_dirac.hs
+++ b/lib/Numeric/GSL/Special/Fermi_dirac.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Fermi_dirac
diff --git a/lib/Numeric/GSL/Special/Gamma.hs b/lib/Numeric/GSL/Special/Gamma.hs
--- a/lib/Numeric/GSL/Special/Gamma.hs
+++ b/lib/Numeric/GSL/Special/Gamma.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Gamma
diff --git a/lib/Numeric/GSL/Special/Gegenbauer.hs b/lib/Numeric/GSL/Special/Gegenbauer.hs
--- a/lib/Numeric/GSL/Special/Gegenbauer.hs
+++ b/lib/Numeric/GSL/Special/Gegenbauer.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Gegenbauer
diff --git a/lib/Numeric/GSL/Special/Hyperg.hs b/lib/Numeric/GSL/Special/Hyperg.hs
--- a/lib/Numeric/GSL/Special/Hyperg.hs
+++ b/lib/Numeric/GSL/Special/Hyperg.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Hyperg
diff --git a/lib/Numeric/GSL/Special/Laguerre.hs b/lib/Numeric/GSL/Special/Laguerre.hs
--- a/lib/Numeric/GSL/Special/Laguerre.hs
+++ b/lib/Numeric/GSL/Special/Laguerre.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Laguerre
diff --git a/lib/Numeric/GSL/Special/Lambert.hs b/lib/Numeric/GSL/Special/Lambert.hs
--- a/lib/Numeric/GSL/Special/Lambert.hs
+++ b/lib/Numeric/GSL/Special/Lambert.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Lambert
diff --git a/lib/Numeric/GSL/Special/Legendre.hs b/lib/Numeric/GSL/Special/Legendre.hs
--- a/lib/Numeric/GSL/Special/Legendre.hs
+++ b/lib/Numeric/GSL/Special/Legendre.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Legendre
diff --git a/lib/Numeric/GSL/Special/Log.hs b/lib/Numeric/GSL/Special/Log.hs
--- a/lib/Numeric/GSL/Special/Log.hs
+++ b/lib/Numeric/GSL/Special/Log.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Log
diff --git a/lib/Numeric/GSL/Special/Pow_int.hs b/lib/Numeric/GSL/Special/Pow_int.hs
--- a/lib/Numeric/GSL/Special/Pow_int.hs
+++ b/lib/Numeric/GSL/Special/Pow_int.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Pow_int
diff --git a/lib/Numeric/GSL/Special/Psi.hs b/lib/Numeric/GSL/Special/Psi.hs
--- a/lib/Numeric/GSL/Special/Psi.hs
+++ b/lib/Numeric/GSL/Special/Psi.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Psi
diff --git a/lib/Numeric/GSL/Special/Synchrotron.hs b/lib/Numeric/GSL/Special/Synchrotron.hs
--- a/lib/Numeric/GSL/Special/Synchrotron.hs
+++ b/lib/Numeric/GSL/Special/Synchrotron.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Synchrotron
diff --git a/lib/Numeric/GSL/Special/Transport.hs b/lib/Numeric/GSL/Special/Transport.hs
--- a/lib/Numeric/GSL/Special/Transport.hs
+++ b/lib/Numeric/GSL/Special/Transport.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Transport
diff --git a/lib/Numeric/GSL/Special/Trig.hs b/lib/Numeric/GSL/Special/Trig.hs
--- a/lib/Numeric/GSL/Special/Trig.hs
+++ b/lib/Numeric/GSL/Special/Trig.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Trig
diff --git a/lib/Numeric/GSL/Special/Zeta.hs b/lib/Numeric/GSL/Special/Zeta.hs
--- a/lib/Numeric/GSL/Special/Zeta.hs
+++ b/lib/Numeric/GSL/Special/Zeta.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 ------------------------------------------------------------
 -- |
 -- Module      :  Numeric.GSL.Special.Zeta
