diff --git a/fft.cabal b/fft.cabal
--- a/fft.cabal
+++ b/fft.cabal
@@ -1,5 +1,5 @@
 name:                fft
-version:             0.1.7.3
+version:             0.1.8
 synopsis:            Bindings to the FFTW library.
 description:
                      Bindings to the FFTW library.
@@ -20,7 +20,7 @@
 flag base4
 
 source-repository this
-  tag:         0.1.7.3
+  tag:         0.1.8
   type:        darcs
   location:    http://code.haskell.org/fft/
 
@@ -34,18 +34,19 @@
     storable-complex >=0.2.1 && <0.3,
     ix-shapable >=0.1 && <0.2
   if flag(splitBase)
-    build-depends: base >= 3, array
+    build-depends: base >=3, array >=0.1 && <0.6
   else
-    build-depends: base < 3
+    build-depends: base <3
   if flag(base4)
-    build-depends: base >= 4 && < 5, syb >= 0.1
+    build-depends: base >=4 && <5, syb >=0.1 && <0.5
   else
-    build-depends: base < 4
+    build-depends: base <4
 
   hs-source-dirs:  src
   exposed-modules: Math.FFT
                    Math.FFT.Base
   pkgconfig-depends:
+                   fftw3f >=3.3 && <4,
                    fftw3 >=3.3 && <4
   ghc-options:     -Wall
   default-language: Haskell98
diff --git a/src/Math/FFT/Base.hsc b/src/Math/FFT/Base.hsc
--- a/src/Math/FFT/Base.hsc
+++ b/src/Math/FFT/Base.hsc
@@ -42,6 +42,13 @@
     plan_guru_r2r :: CInt -> Ptr IODim -> CInt -> Ptr IODim -> Ptr a
                   -> Ptr a -> Ptr FFTWKind -> FFTWFlag -> IO Plan
 
+-- | Using this instance requires linking with @-lfftw3f@.
+instance FFTWReal Float where
+    plan_guru_dft = cf_plan_guru_dft
+    plan_guru_dft_r2c = cf_plan_guru_dft_r2c
+    plan_guru_dft_c2r = cf_plan_guru_dft_c2r
+    plan_guru_r2r = cf_plan_guru_r2r
+
 -- | Using this instance requires linking with @-lfftw3@.
 instance FFTWReal Double where
     plan_guru_dft = c_plan_guru_dft
@@ -541,6 +548,27 @@
 
 -- We use "safe" calls for anything which could take a while so that it won't block
 -- other Haskell threads.
+
+-- | Plan a complex to complex transform using the guru interface.
+foreign import ccall safe "fftw3.h fftwf_plan_guru_dft" cf_plan_guru_dft
+    :: CInt -> Ptr IODim -> CInt -> Ptr IODim -> Ptr (Complex Float)
+    -> Ptr (Complex Float) -> FFTWSign -> FFTWFlag -> IO Plan
+
+-- | Plan a real to complex transform using the guru interface.
+foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_r2c" cf_plan_guru_dft_r2c
+    :: CInt -> Ptr IODim -> CInt -> Ptr IODim -> Ptr Float
+    -> Ptr (Complex Float) -> FFTWFlag -> IO Plan
+
+-- | Plan a complex to real transform using the guru interface.
+foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_c2r" cf_plan_guru_dft_c2r
+    :: CInt -> Ptr IODim -> CInt -> Ptr IODim -> Ptr (Complex Float)
+    -> Ptr Float -> FFTWFlag -> IO Plan
+
+-- | Plan a real to real transform using the guru interface.
+foreign import ccall safe "fftw3.h fftwf_plan_guru_r2r" cf_plan_guru_r2r
+    :: CInt -> Ptr IODim -> CInt -> Ptr IODim -> Ptr Float
+    -> Ptr Float -> Ptr FFTWKind -> FFTWFlag -> IO Plan
+
 
 -- | Plan a complex to complex transform using the guru interface.
 foreign import ccall safe "fftw3.h fftw_plan_guru_dft" c_plan_guru_dft
