diff --git a/Control/Comonad/Store/MemoTrie.hs b/Control/Comonad/Store/MemoTrie.hs
--- a/Control/Comonad/Store/MemoTrie.hs
+++ b/Control/Comonad/Store/MemoTrie.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, TypeOperators, FlexibleInstances, MultiParamTypeClasses #-}
+{-# LANGUAGE CPP, TypeOperators, FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Comonad.Store.MemoTrie
@@ -34,6 +34,8 @@
 import Control.Comonad.Hoist.Class
 import Control.Comonad.Trans.Class
 import Control.Comonad.Store.Class
+import Control.Comonad.Env.Class
+import Control.Comonad.Traced.Class
 import Data.Functor.Identity
 import Data.MemoTrie
 
@@ -93,3 +95,8 @@
   peek s (StoreT g _) = untrie (extract g) s
   peeks f (StoreT g s) = untrie (extract g) (f s)
 
+instance (ComonadTraced m w, HasTrie s) => ComonadTraced m (StoreT s w) where
+  trace m = trace m . lower
+
+instance (ComonadEnv m w, HasTrie s) => ComonadEnv m (StoreT s w) where 
+  ask = ask . lower
diff --git a/Control/Comonad/Store/Pointer.hs b/Control/Comonad/Store/Pointer.hs
--- a/Control/Comonad/Store/Pointer.hs
+++ b/Control/Comonad/Store/Pointer.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies #-}
+{-# LANGUAGE CPP, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Comonad.Store.Pointer
@@ -42,6 +42,8 @@
 import Control.Comonad.Hoist.Class
 import Control.Comonad.Trans.Class
 import Control.Comonad.Store.Class 
+import Control.Comonad.Traced.Class 
+import Control.Comonad.Env.Class 
 import Data.Functor.Identity
 import Data.Array
 
@@ -103,3 +105,10 @@
 -- | Extract the bounds of the currently focused array
 pointerBounds :: (Comonad w, Ix i) => PointerT i w a -> (i,i)
 pointerBounds (PointerT g _) = bounds (extract g)
+
+instance (ComonadTraced m w, Ix i) => ComonadTraced m (PointerT i w) where
+  trace m = trace m . lower
+
+instance (ComonadEnv m w, Ix i)  => ComonadEnv m (PointerT i w) where
+  ask = ask . lower
+
diff --git a/comonad-extras.cabal b/comonad-extras.cabal
--- a/comonad-extras.cabal
+++ b/comonad-extras.cabal
@@ -1,6 +1,6 @@
 name:          comonad-extras
 category:      Control, Comonads
-version:       0.1.1
+version:       0.1.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
