diff --git a/Control/Comonad/Store/Class.hs b/Control/Comonad/Store/Class.hs
--- a/Control/Comonad/Store/Class.hs
+++ b/Control/Comonad/Store/Class.hs
@@ -36,12 +36,16 @@
   seeks :: (s -> s) -> w a -> w a
   seeks f = peeks f . duplicate
 
+  experiment :: Functor f => (s -> f s) -> w a -> f a
+  experiment f w = fmap (`peek` w) (f (pos w))
+
 instance Comonad w => ComonadStore s (Store.StoreT s w) where
   pos = Store.pos
   peek = Store.peek
   peeks = Store.peeks
   seek = Store.seek
   seeks = Store.seeks
+  experiment = Store.experiment
 
 lowerPos :: (ComonadTrans t, ComonadStore s w) => t w a -> s
 lowerPos = pos . lower
@@ -51,14 +55,21 @@
 lowerPeek s = peek s . lower
 {-# INLINE lowerPeek #-}
 
+lowerExperiment :: (ComonadTrans t, ComonadStore s w, Functor f) => (s -> f s) -> t w a -> f a
+lowerExperiment f = experiment f . lower
+{-# INLINE lowerExperiment #-}
+
 instance ComonadStore s w => ComonadStore s (IdentityT w) where
   pos = lowerPos
   peek = lowerPeek
+  experiment = lowerExperiment
 
 instance ComonadStore s w => ComonadStore s (EnvT e w) where
   pos = lowerPos
   peek = lowerPeek
+  experiment = lowerExperiment
 
 instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (TracedT m w) where
   pos = lowerPos
   peek = lowerPeek
+  experiment = lowerExperiment
diff --git a/comonads-fd.cabal b/comonads-fd.cabal
--- a/comonads-fd.cabal
+++ b/comonads-fd.cabal
@@ -1,6 +1,6 @@
 name:          comonads-fd
 category:      Control, Comonads
-version:       2.1.1.2
+version:       2.1.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -31,7 +31,7 @@
     mtl                  >= 2.0     && < 2.2,
     semigroups           >= 0.8.3.1 && < 0.9,
     comonad              >= 1.1.1.5 && < 1.2,
-    comonad-transformers >= 2.1.1.1 && < 2.2
+    comonad-transformers >= 2.1.2   && < 2.2
 
   exposed-modules:
     Control.Comonad.Env
