diff --git a/accelerate-fftw.cabal b/accelerate-fftw.cabal
--- a/accelerate-fftw.cabal
+++ b/accelerate-fftw.cabal
@@ -1,5 +1,5 @@
 Name:             accelerate-fftw
-Version:          1.0.1
+Version:          1.0.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -15,7 +15,7 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         1.0.1
+  Tag:         1.0.2
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/accelerate-fftw/
 
@@ -28,8 +28,8 @@
     fft >=0.1.7 && <0.2,
     carray >=0.1.5 && <0.2,
     storable-complex >=0.2.1 && <0.3,
-    accelerate-io >=1.2 && <1.3,
-    accelerate >=1.2 && <1.3,
+    accelerate-io >=1.3 && <1.5,
+    accelerate >=1.3 && <1.5,
     base >=4.5 && <5
 
   GHC-Options:      -Wall -fwarn-missing-import-lists
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.Foreign.ForeignPtr as AIO
 import qualified Data.Array.Accelerate as A
-import Data.Array.Accelerate.Array.Sugar (EltRepr)
+import Data.Array.Accelerate.Sugar.Elt (EltR)
 import Data.Array.Accelerate (Array, DIM1, DIM2, Z(Z), (:.)((:.)))
 
 import qualified Data.Array.CArray as CArray
@@ -20,14 +20,14 @@
 
 
 accFromCArrayReal1D ::
-   (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>
+   (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) =>
    CArray Int a -> Array DIM1 a
 accFromCArrayReal1D arr =
    let (len, fptr) = CArray.toForeignPtr arr
    in  AIO.fromForeignPtrs (Z :. len) fptr
 
 accFromCArrayReal2D ::
-   (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>
+   (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) =>
    CArray (Int, Int) a -> Array DIM2 a
 accFromCArrayReal2D arr =
    AIO.fromForeignPtrs
@@ -37,21 +37,21 @@
 
 accFromCArrayComplex1D ::
    (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    CArray Int (Complex a) -> Array DIM1 (Complex a)
 accFromCArrayComplex1D arr =
    accFromCArrayComplex (accDimsFromArrayBounds1D $ CArray.bounds arr) arr
 
 accFromCArrayComplex2D ::
    (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    CArray (Int, Int) (Complex a) -> Array DIM2 (Complex a)
 accFromCArrayComplex2D arr =
    accFromCArrayComplex (accDimsFromArrayBounds2D $ CArray.bounds arr) arr
 
 accFromCArrayComplex ::
    (Ix i, A.Shape sh, Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    sh -> CArray i ac -> Array sh ac
 accFromCArrayComplex sh arr =
    AIO.fromForeignPtrs sh (snd $ CArray.toForeignPtr arr)
@@ -68,7 +68,7 @@
 
 
 cArrayFromAccReal1D ::
-   (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>
+   (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) =>
    Array DIM1 a -> CArray Int a
 cArrayFromAccReal1D arr =
    let (Z:.len) = A.arrayShape arr
@@ -76,7 +76,7 @@
        unsafeForeignPtrToCArray (AIO.toForeignPtrs arr) (0,len-1)
 
 cArrayFromAccReal2D ::
-   (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>
+   (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) =>
    Array DIM2 a -> CArray (Int, Int) a
 cArrayFromAccReal2D arr =
    unsafePerformIO $
@@ -85,7 +85,7 @@
 
 cArrayFromAccComplex1D ::
    (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    Array DIM1 ac -> CArray Int ac
 cArrayFromAccComplex1D arr =
    cArrayFromAccComplex
@@ -93,7 +93,7 @@
 
 cArrayFromAccComplex2D ::
    (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    Array DIM2 ac -> CArray (Int,Int) ac
 cArrayFromAccComplex2D arr =
    cArrayFromAccComplex
@@ -102,7 +102,7 @@
 cArrayFromAccComplex ::
    (Ix i, A.Shape sh,
     Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    (i,i) -> Array sh ac -> CArray i ac
 cArrayFromAccComplex bnds arr =
    unsafePerformIO $
@@ -112,7 +112,7 @@
 withCArrayComplex ::
    (Ix i, A.Shape sh,
     Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,
-    AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>
+    AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) =>
    (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
@@ -18,7 +18,8 @@
 
 import qualified Data.Array.Accelerate.IO.Foreign.ForeignPtr as AIO
 import qualified Data.Array.Accelerate as A
-import Data.Array.Accelerate.Array.Sugar (EltRepr)
+import qualified Data.Array.Accelerate.Sugar.Shape as Shape
+import Data.Array.Accelerate.Sugar.Elt (EltR)
 import Data.Array.Accelerate (Array, (:.)((:.)))
 
 import Foreign.Storable.Complex ()
@@ -34,7 +35,7 @@
 
 type Element a =
       (FFTWReal a, A.Elt (Complex a),
-       AIO.ForeignPtrs (EltRepr (Complex a)) ~ ForeignPtr (Complex a))
+       AIO.ForeignPtrs (EltR (Complex a)) ~ ForeignPtr (Complex a))
 
 dft ::
    (A.Shape sh, Element a) =>
@@ -47,7 +48,7 @@
 idft = Conv.withCArrayComplex bnds1 $ FFT.dftN [1]
 
 bnds1 :: (A.Shape sh) => sh:.Int -> Bounds (Int,Int)
-bnds1 (sh:.n) = ((0,0), (A.arraySize sh-1, n-1))
+bnds1 (sh:.n) = ((0,0), (Shape.size sh-1, n-1))
 
 
 dft2d ::
@@ -63,4 +64,4 @@
    Conv.withCArrayComplex bnds2 $ FFT.idftN [1,2]
 
 bnds2 :: (A.Shape sh) => sh:.Int:.Int -> Bounds (Int,Int,Int)
-bnds2 (sh:.n:.m) = ((0,0,0), (A.arraySize sh-1, n-1, m-1))
+bnds2 (sh:.n:.m) = ((0,0,0), (Shape.size sh-1, n-1, m-1))
