diff --git a/comfort-array.cabal b/comfort-array.cabal
--- a/comfort-array.cabal
+++ b/comfort-array.cabal
@@ -1,5 +1,5 @@
 Name:             comfort-array
-Version:          0.5.2
+Version:          0.5.2.1
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -96,7 +96,7 @@
   test-module.list
 
 Source-Repository this
-  Tag:         0.5.2
+  Tag:         0.5.2.1
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/comfort-array/
 
diff --git a/src/Data/Array/Comfort/Boxed/Unchecked.hs b/src/Data/Array/Comfort/Boxed/Unchecked.hs
--- a/src/Data/Array/Comfort/Boxed/Unchecked.hs
+++ b/src/Data/Array/Comfort/Boxed/Unchecked.hs
@@ -39,6 +39,7 @@
 >>> import qualified Data.Array.Comfort.Boxed as Array
 >>> import qualified Data.Array.Comfort.Shape as Shape
 >>> import Data.Array.Comfort.Boxed (Array)
+>>> import Control.Applicative ((<$>))
 >>>
 >>> import qualified Test.QuickCheck as QC
 >>>
diff --git a/src/Data/Array/Comfort/Shape.hs b/src/Data/Array/Comfort/Shape.hs
--- a/src/Data/Array/Comfort/Shape.hs
+++ b/src/Data/Array/Comfort/Shape.hs
@@ -1683,7 +1683,7 @@
    indexTupleA extend (a:+b) =
       App.lift2 (:+) (indexTupleA extend a) (indexTupleA extend b)
 
-instance (AccessorTuple a) => AccessorTuple (Complex a) where
+instance (AccessorTuple a, RealFloat a) => AccessorTuple (Complex a) where
    tupleAccessors (a:+b) =
       map (.realPart) (tupleAccessors a) ++ map (.imagPart) (tupleAccessors b)
 
diff --git a/src/Data/Array/Comfort/Shape/Tuple.hs b/src/Data/Array/Comfort/Shape/Tuple.hs
--- a/src/Data/Array/Comfort/Shape/Tuple.hs
+++ b/src/Data/Array/Comfort/Shape/Tuple.hs
@@ -6,6 +6,7 @@
 
 import qualified Control.Monad.Trans.State as MS
 import qualified Control.Applicative.HT as App
+import Control.Applicative ((<$>))
 
 
 get :: MS.State [a] a
diff --git a/test/DocTest/Data/Array/Comfort/Boxed/Unchecked.hs b/test/DocTest/Data/Array/Comfort/Boxed/Unchecked.hs
--- a/test/DocTest/Data/Array/Comfort/Boxed/Unchecked.hs
+++ b/test/DocTest/Data/Array/Comfort/Boxed/Unchecked.hs
@@ -9,6 +9,7 @@
 import     qualified Data.Array.Comfort.Boxed as Array
 import     qualified Data.Array.Comfort.Shape as Shape
 import     Data.Array.Comfort.Boxed (Array)
+import     Control.Applicative ((<$>))
 
 import     qualified Test.QuickCheck as QC
 
@@ -25,18 +26,18 @@
 
 test :: DocTest.T ()
 test = do
- DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:164: "
-{-# LINE 164 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+ DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:165: "
+{-# LINE 165 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
  DocTest.property
-{-# LINE 164 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+{-# LINE 165 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
      (\(QC.NonNegative n) (ArrayChar x)  ->  x == Array.mapShape (Shape.ZeroBased . Shape.size) (Array.append (Array.take n x) (Array.drop n x)))
- DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:179: "
-{-# LINE 179 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+ DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:180: "
+{-# LINE 180 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
  DocTest.property
-{-# LINE 179 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+{-# LINE 180 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
      (\(ArrayChar x) (ArrayChar y) -> let xy = Array.append x y in x == Array.takeLeft xy  &&  y == Array.takeRight xy)
- DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:199: "
-{-# LINE 199 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+ DocTest.printPrefix "Data.Array.Comfort.Boxed.Unchecked:200: "
+{-# LINE 200 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
  DocTest.property
-{-# LINE 199 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
+{-# LINE 200 "src/Data/Array/Comfort/Boxed/Unchecked.hs" #-}
      (\(ArrayChar x) (ArrayChar y) (ArrayChar z) -> let xyz = Array.append x $ Array.append y z in y == Array.takeCenter xyz)
