diff --git a/comonad-extras.cabal b/comonad-extras.cabal
index fc3745a..77a2f0d 100644
--- a/comonad-extras.cabal
+++ b/comonad-extras.cabal
@@ -1,7 +1,7 @@
 name:          comonad-extras
 category:      Control, Comonads
-version:       4.0
+version:       5.0
 x-revision: 1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -34,8 +34,8 @@ library
   build-depends:
     array                >= 0.3   && < 0.6,
-    base                 >= 4     && < 4.7,
-    containers           >= 0.4   && < 0.6,
-    comonad              >= 4     && < 5,
+    base                 >= 4     && < 5,
+    containers           >= 0.6   && < 0.7,
+    comonad              >= 5     && < 6,
     distributive         >= 0.3.2 && < 1,
-    semigroupoids        >= 4     && < 5,
-    transformers         >= 0.2   && < 0.4
+    semigroupoids        >= 5     && < 6,
+    transformers         >= 0.5   && < 0.6

   exposed-modules:
     Control.Comonad.Store.Zipper
diff --git a/src/Control/Comonad/Store/Pointer.hs b/src/Control/Comonad/Store/Pointer.hs
index 5044a1e..8d4c62d 100644
--- a/src/Control/Comonad/Store/Pointer.hs
+++ b/src/Control/Comonad/Store/Pointer.hs
@@ -41,7 +41,6 @@ module Control.Comonad.Store.Pointer
   , module Control.Comonad.Store.Class
   ) where

-import Control.Applicative
 import Control.Comonad
 import Control.Comonad.Hoist.Class
 import Control.Comonad.Trans.Class
@@ -51,27 +50,8 @@ import Control.Comonad.Env.Class
 import Data.Functor.Identity
 import Data.Functor.Extend
 import Data.Array
-
 #ifdef __GLASGOW_HASKELL__
 import Data.Typeable
-instance (Typeable i, Typeable1 w) => Typeable1 (PointerT i w) where
-  typeOf1 diwa = mkTyConApp storeTTyCon [typeOf (i diwa), typeOf1 (w diwa)]
-    where
-      i :: PointerT i w a -> i
-      i = undefined
-      w :: PointerT i w a -> w a
-      w = undefined
-
-instance (Typeable i, Typeable1 w, Typeable a) => Typeable (PointerT i w a) where
-  typeOf = typeOfDefault
-
-storeTTyCon :: TyCon
-#if __GLASGOW_HASKELL__ < 704
-storeTTyCon = mkTyCon "Control.Comonad.Trans.Store.Pointer.PointerT"
-#else
-storeTTyCon = mkTyCon3 "comonad-extras" "Control.Comonad.Trans.Store.Pointer" "PointerT"
-#endif
-{-# NOINLINE storeTTyCon #-}
 #endif

 type Pointer i = PointerT i Identity
@@ -83,6 +63,9 @@ runPointer :: Pointer i a -> (Array i a, i)
 runPointer (PointerT (Identity f) i) = (f, i)

 data PointerT i w a = PointerT (w (Array i a)) i
+#ifdef __GLASGOW_HASKELL__
+  deriving Typeable
+#endif

 runPointerT :: PointerT i w a -> (w (Array i a), i)
 runPointerT (PointerT g i) = (g, i)
diff --git a/src/Control/Comonad/Store/Zipper.hs b/src/Control/Comonad/Store/Zipper.hs
index 3b70c86..decc378 100644
--- a/src/Control/Comonad/Store/Zipper.hs
+++ b/src/Control/Comonad/Store/Zipper.hs
@@ -15,7 +15,6 @@
 module Control.Comonad.Store.Zipper
   ( Zipper, zipper, zipper1, unzipper, size) where

-import Control.Applicative
 import Control.Comonad (Comonad(..))
 import Data.Functor.Extend
 import Data.Foldable
