diff --git a/accelerate-fftw.cabal b/accelerate-fftw.cabal
--- a/accelerate-fftw.cabal
+++ b/accelerate-fftw.cabal
@@ -1,10 +1,10 @@
 Name:             accelerate-fftw
-Version:          0.0
+Version:          1.0
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
 Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
-Homepage:         http://code.haskell.org/~thielema/accelerate-fftw/
+Homepage:         http://hub.darcs.net/thielema/accelerate-fftw/
 Category:         Math
 Synopsis:         Accelerate frontend to the FFTW library (Fourier transform)
 Description:
@@ -15,22 +15,22 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.0
+  Tag:         1.0
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/accelerate-fftw/
+  Location:    http://hub.darcs.net/thielema/accelerate-fftw/
 
 Source-Repository head
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/accelerate-fftw/
+  Location:    http://hub.darcs.net/thielema/accelerate-fftw/
 
 Library
   Build-Depends:
     fft >=0.1.7 && <0.2,
     carray >=0.1.5 && <0.2,
     storable-complex >=0.2.1 && <0.3,
-    accelerate-io >=0.15 && <0.16,
-    accelerate >=0.15 && <0.16,
-    base >=4.5 && <4.8
+    accelerate-io >=1.0 && <1.1,
+    accelerate >=1.0 && <1.2,
+    base >=4.5 && <4.11
 
   GHC-Options:      -Wall -fwarn-missing-import-lists
   Hs-Source-Dirs:   src
diff --git a/src/Data/Array/Accelerate/CArray/Conversion.hs b/src/Data/Array/Accelerate/CArray/Conversion.hs
--- a/src/Data/Array/Accelerate/CArray/Conversion.hs
+++ b/src/Data/Array/Accelerate/CArray/Conversion.hs
@@ -4,7 +4,7 @@
 
 import qualified Data.Array.Accelerate.IO as AIO
 import qualified Data.Array.Accelerate as A
-import Data.Array.Accelerate.Array.Sugar (EltRepr, EltRepr')
+import Data.Array.Accelerate.Array.Sugar (EltRepr)
 import Data.Array.Accelerate (Array, DIM1, DIM2, Z(Z), (:.)((:.)))
 
 import qualified Data.Array.CArray as CArray
@@ -25,43 +25,37 @@
 
 
 accFromCArrayReal1D ::
-   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a)) =>
+   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    CArray Int a -> Array DIM1 a
 accFromCArrayReal1D arr =
    let (len, fptr) = CArray.toForeignPtr arr
    in  unsafePerformIO $
-       withForeignPtr fptr $ \ptr -> AIO.fromPtr (Z :. len) ((), ptr)
+       withForeignPtr fptr $ \ptr -> AIO.fromPtr (Z :. len) ptr
 
 accFromCArrayReal2D ::
-   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a)) =>
+   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    CArray (Int, Int) a -> Array DIM2 a
 accFromCArrayReal2D arr =
    unsafePerformIO $
    withCArray arr $ \ptr ->
-      AIO.fromPtr (accDimsFromArrayBounds2D $ CArray.bounds arr) ((), ptr)
+      AIO.fromPtr (accDimsFromArrayBounds2D $ CArray.bounds arr) ptr
 
 
 accFromCArrayComplex1D ::
-   (A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+   (A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    CArray Int (Complex a) -> Array DIM1 (Complex a)
 accFromCArrayComplex1D arr =
    accFromCArrayComplex (accDimsFromArrayBounds1D $ CArray.bounds arr) arr
 
 accFromCArrayComplex2D ::
-   (A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+   (A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    CArray (Int, Int) (Complex a) -> Array DIM2 (Complex a)
 accFromCArrayComplex2D arr =
    accFromCArrayComplex (accDimsFromArrayBounds2D $ CArray.bounds arr) arr
 
 accFromCArrayComplex ::
    (Ix i, A.Shape sh,
-    A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+    A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    sh -> CArray i (Complex a) -> Array sh (Complex a)
 accFromCArrayComplex sh arr =
    unsafePerformIO $
@@ -80,34 +74,30 @@
 
 
 cArrayFromAccReal1D ::
-   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a)) =>
+   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    Array DIM1 a -> CArray Int a
 cArrayFromAccReal1D arr =
    let (Z:.len) = A.arrayShape arr
    in  unsafePerformIO $
-       createCArray (0,len-1) $ \ptr -> AIO.toPtr arr ((), ptr)
+       createCArray (0,len-1) $ \ptr -> AIO.toPtr arr ptr
 
 cArrayFromAccReal2D ::
-   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a)) =>
+   (A.Elt a, Storable a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    Array DIM2 a -> CArray (Int, Int) a
 cArrayFromAccReal2D arr =
    unsafePerformIO $
    createCArray (arrayBounds2DFromAccDims $ A.arrayShape arr) $ \ptr ->
-      AIO.toPtr arr ((), ptr)
+      AIO.toPtr arr ptr
 
 cArrayFromAccComplex1D ::
-   (A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+   (A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    Array DIM1 (Complex a) -> CArray Int (Complex a)
 cArrayFromAccComplex1D arr =
    cArrayFromAccComplex
       (arrayBounds1DFromAccDims $ A.arrayShape arr) arr
 
 cArrayFromAccComplex2D ::
-   (A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+   (A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    Array DIM2 (Complex a) -> CArray (Int,Int) (Complex a)
 cArrayFromAccComplex2D arr =
    cArrayFromAccComplex
@@ -115,9 +105,7 @@
 
 cArrayFromAccComplex ::
    (Ix i, A.Shape sh,
-    A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+    A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    (i,i) -> Array sh (Complex a) -> CArray i (Complex a)
 cArrayFromAccComplex bnds arr = unsafePerformIO $ do
    fmap (uncurry (CArray.liftArray2 (Complex.:+))) $
@@ -128,9 +116,7 @@
 
 withCArrayComplex ::
    (Ix i, A.Shape sh,
-    A.Elt a, Storable a, RealFloat a,
-    AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-    AIO.BlockPtrs (EltRepr' a) ~ Ptr a) =>
+    A.Elt a, Storable a, RealFloat a, AIO.BlockPtrs (EltRepr a) ~ Ptr a) =>
    (sh -> (i,i)) ->
    (CArray i (Complex a) -> CArray i (Complex a)) ->
    Array sh (Complex a) -> Array sh (Complex a)
diff --git a/src/Data/Array/Accelerate/FFTW/Manifest.hs b/src/Data/Array/Accelerate/FFTW/Manifest.hs
--- a/src/Data/Array/Accelerate/FFTW/Manifest.hs
+++ b/src/Data/Array/Accelerate/FFTW/Manifest.hs
@@ -17,7 +17,7 @@
 
 import qualified Data.Array.Accelerate.IO as AIO
 import qualified Data.Array.Accelerate as A
-import Data.Array.Accelerate.Array.Sugar (EltRepr, EltRepr')
+import Data.Array.Accelerate.Array.Sugar (EltRepr)
 import Data.Array.Accelerate (Array, (:.)((:.)))
 
 import Foreign.Storable.Complex ()
@@ -31,10 +31,7 @@
 
 type Transform sh a = Array sh a -> Array sh a
 
-type Element a =
-      (FFTWReal a, A.Elt a,
-       AIO.BlockPtrs (EltRepr a) ~ ((), Ptr a),
-       AIO.BlockPtrs (EltRepr' a) ~ Ptr a)
+type Element a = (FFTWReal a, A.Elt a, AIO.BlockPtrs (EltRepr a) ~ Ptr a)
 
 dft ::
    (A.Shape sh, Element a) =>
