diff --git a/data-accessor.cabal b/data-accessor.cabal
--- a/data-accessor.cabal
+++ b/data-accessor.cabal
@@ -1,5 +1,5 @@
 Name:             data-accessor
-Version:          0.2.1
+Version:          0.2.1.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>, Luke Palmer <lrpalmer@gmail.com>
@@ -64,7 +64,7 @@
   that conflicts with the two-way nature (set and get) of accessors.
 -- Portability:      Haskell98
 Cabal-Version:    >=1.2
-Tested-With:      GHC==6.4.1 && ==6.8.2
+Tested-With:      GHC==6.10.4
 Build-Type:       Simple
 
 Extra-Source-Files:
@@ -75,17 +75,29 @@
 Flag category
   description: Check whether Arrow class is split into Arrow and Category.
 
+Flag splitBase
+  description: Choose the smaller, split-up base package from version 2 on.
+
 Library
   Build-Depends:
-    array >=0.1 && <0.3,
-    containers >=0.1 && <0.3,
     transformers >=0.0.1 && <0.2
-  If flag(category)
-    Hs-Source-Dirs: src-4
-    Build-Depends: base >= 4 && <6
+  If flag(splitBase)
+    Build-Depends:
+      array >=0.1 && <0.4,
+      containers >=0.1 && <0.4
+    If flag(category)
+      Hs-Source-Dirs: src-4
+      Build-Depends: base >= 4 && <6
+    Else
+      Hs-Source-Dirs: src-3
+      Build-Depends: base >= 2 && <4
   Else
     Hs-Source-Dirs: src-3
-    Build-Depends: base >= 1 && <4
+    Build-Depends:
+      base >= 1 && <2
+    If impl(jhc)
+      Build-Depends:
+        containers >=0.1 && <0.4
 
   GHC-Options:      -Wall
   Hs-Source-Dirs:   src
diff --git a/src/Data/Accessor/Container.hs b/src/Data/Accessor/Container.hs
--- a/src/Data/Accessor/Container.hs
+++ b/src/Data/Accessor/Container.hs
@@ -12,6 +12,7 @@
 
 import qualified Data.Accessor.Basic as Accessor
 
+import Data.Ix (Ix, )
 import qualified Data.Array  as Array
 import qualified Data.Map    as Map
 import qualified Data.IntMap as IntMap
@@ -19,7 +20,7 @@
 import Prelude hiding (map)
 
 
-array :: Array.Ix i => i -> Accessor.T (Array.Array i e) e
+array :: Ix i => i -> Accessor.T (Array.Array i e) e
 array i = Accessor.fromSetGet (\e a -> a Array.// [(i,e)]) (Array.! i)
 
 {- |
diff --git a/src/Data/Accessor/Show.hs b/src/Data/Accessor/Show.hs
--- a/src/Data/Accessor/Show.hs
+++ b/src/Data/Accessor/Show.hs
@@ -7,7 +7,8 @@
 
 import Data.Maybe (catMaybes)
 
-import qualified Text.Show as Show
+-- import qualified Text.Show as Show
+import qualified Prelude as Show
 import Prelude hiding (showsPrec)
 
 
